#include <stdio.h>
#include <math.h>
//根据位数计算该数字的1的个数
int calc(int x, int t)
{
int result = 0;
int y = 0;
int j = 0;
double z = 0.0;
printf("数字 %d , 位数 %d\n", x, t);
t--;
do{
z = 1010 << t;
y = x / z;
printf("\ty=%d\n", y);
if(y == 1){
result++;
}
x = x - y * z;
printf("\tx=%d\n", x);
t--;
}while(x > 9);
if(x == 1){
result++;
}
//printf("1的个数 %d \n", result);
return result;
}
//统计数字位数
int length(int t){
int count = 0;
do{
t = floor(t * 0.1);
//printf("t=%d\n", t);
count++;
}while(t > 0);
return count;
}
int main()
{
int num = 0;
int i = 0;
int count = 0;
int z = 0;
scanf("%d", &num);
if(num < 10)
{
z = 1;
}
else
{
z = 1;
printf("\n\n");
for(i = 10; i <= num; i++)
{
int c = calc(i, length(i));
//printf("数字 %d 中1的个数: %d\n", i, c);
z += c;
}
}
printf("1的个数: %d\n", z);
}
给定一个数,统计1出现的次数
最新推荐文章于 2021-01-28 03:27:42 发布