| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 669 人关注过本帖
标题:求教:简单问题超时,有解决办法么?
取消只看楼主 加入收藏
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
快速回复:求教:简单问题超时,有解决办法么?
数据加载中...
 
   



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

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