标题:求教:简单问题超时,有解决办法么?
取消只看楼主
huicpc0876
Rank: 2
等 级:论坛游民
帖 子:69
专家分:50
注 册:2009-7-24
结帖率:92.59%
已结贴  问题点数:20 回复次数:2 
求教:简单问题超时,有解决办法么?
问题,输入整数N,转化为二进制后,从末尾向高位,遇到第一个1时,截取后面部分,转化为十进制输出。程序以0作为结束符
样例,
input  26
output 2
intput 8/*转化二进制后是1000*/
output 8
input  0
结束
我的代码如下:
#include"stdio.h"
int main()
{int i,n,j;
 long b;
 while(getchar()!=EOF)
 {scanf("%d",&n);
 if(n==0) return;
 b=1;
 while(n%2==0)
   {   n=n/2;
       b*=2;}
      
printf("%ld\n",b); } }
搜索更多相关主题的帖子: 简单问题 办法 超时 
2009-07-27 21:57
huicpc0876
Rank: 2
等 级:论坛游民
帖 子:69
专家分:50
注 册:2009-7-24
得分:0 
回复 2楼 StarWing83
程序很简洁,但请教下
 (-n)&n;是什么意思啊?
2009-07-27 22:57
huicpc0876
Rank: 2
等 级:论坛游民
帖 子:69
专家分:50
注 册:2009-7-24
得分:0 
回复 2楼 StarWing83
上面是按位与,我知道了,但你怎么想到的,太天才了!~~
2009-07-27 23:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-280736-1-1.html




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

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