| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1691 人关注过本帖, 2 人收藏
标题:很有趣的一道题,出乎意料的答案
取消只看楼主 加入收藏
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
结帖率:81.25%
收藏(2)
已结贴  问题点数:20 回复次数:7 
很有趣的一道题,出乎意料的答案
给出n个数,数的范围为[1,LONG_MAX],保证其中某个数出现了奇数次,其他数都出现偶数次,编程把这个数找出来

比如给出7个数,1,3,2,3,1,2,3   3出现了3次,1,2都出现2次,这样答案就是3

当然,程序运算速度越快越好,能保证n达到100W时能在1s内算出来
搜索更多相关主题的帖子: 答案 
2012-03-09 22:24
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
恩,最简单的方法就是把所有数异或一遍,但是这题还有个加强版:如果有且仅有两个数出现了奇数次,把这两个数找出来,要求时间效率和之前一样
2012-03-11 00:28
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
表沉了
2012-03-11 15:40
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
别沉啊,我只是觉得思路很奇妙,想分享一下
2012-03-12 11:42
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
二楼已经基本上就是第一问完整的代码了,写个c语言版

程序代码:
#include <stdio.h>

int main()
{
    int ans=0,total,tmp;
    scanf("%d",&total);
    while (total--) ans^=(scanf("%d",&tmp),tmp);
    printf("%d\n",ans);
}


大家看看第二问怎么做哦
2012-03-12 14:58
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
回复 15楼 beyondyf
也分享下be
2012-03-12 19:18
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
算了,我在这里先把代码贴出来,看谁能看出第二问是怎样根据第一问基础稍加改变得到的
程序代码:
#include <stdio.h>
#define Nmax 1000000

int n,ans,ans1,ans2,a[Nmax],i,p;

int main()
{
    scanf("%d",&n);
    for (i=0; i<n; i++) scanf("%d",&a[i]);
    ans=0;  for (i=0; i<n; i++) ans^=a[i];
    p=1<<30;  while ((p&ans)==0) p>>=1;
    ans1=0; ans2=0;
    for (i=0; i<n; i++)
    if (a[i]&p) ans1^=a[i]; else ans2^=a[i];
    printf("%d %d\n",ans1,ans2);
    
    system("pause");
}
    
2012-03-13 17:42
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
回复 19楼 beyondyf
哇塞,这个取最低位真心pl
2012-03-13 22:16
快速回复:很有趣的一道题,出乎意料的答案
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056147 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved