网上有很多采用求余的手段来统计1出现的个数,这里为大家提供另一种思路解题,采用数组的方式统计。
要求:输入数字n,统计0~n中1的个数,如12:1,10,11,12带1的个数5个。(假定输入的数0~999)
//输入数字n统计0~n中1的个数有几个
#include<stdio.h>
int main()
{
int n,num=0;
printf("请输入数字n(0<=n<=999):");
scanf("%d",&n);
for(int i=0;i<=n;i++)
{
char a[4];
sprintf(a,"%d",i);
int j=0;
while(a[j]!='\0')
{
if(a[j]=='1'){
num++;
printf("%d ",i);
}
j++;
}
}
printf("\n%d以内数字包含1的个数有:%d个\n",n,num);
}
运行结果: