回复 19楼 藤田惠美
下次我会尽量多写注释。
void main()
{
unsigned int i,n,p,m,q=0;
printf("请输入一个正整数\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p=i;
do
{
m=p&1;
if(m!=0)q++;
p=p>>1;
}
while(p!=0);
}
printf("1~n用二进制表示时1的个数为:%d\n",q);
}
按之前那位大神的算法编了下,感觉这样思路更清晰
[此贴子已经被作者于2016-10-11 22:39编辑过]