给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。 例如当n=2时,写下1,2。这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。这样出现了5个“1”。用C语言写
时间: 2024-10-23 08:03:19 浏览: 33
给定一个十进制正整数N,程序输出从1到N的所有整数中,“1”出现的个数。DMU
5星 · 资源好评率100%
在C语言中,你可以通过循环遍历从1到n的每个整数,并检查每一位是否为1来计算“1”的个数。下面是一个简单的函数示例,它接受一个整数n作为输入并返回“1”的个数:
```c
#include <stdio.h>
int countOnes(int n) {
int count = 0;
while (n > 0) {
// 取n的最后一位(右侧),如果等于1则加计数
if (n % 10 == 1) {
count++;
}
// 将n除以10去掉最低位
n /= 10;
}
return count;
}
int main() {
int num;
printf("请输入一个正整数n: ");
scanf("%d", &num);
int ones = countOnes(num);
printf("在1到%d的数列中有 %d 个数字'1'\n", num, ones);
return 0;
}
```
在这个程序中,`countOnes` 函数会递归地处理每一位,直到n变成0为止。每次迭代中,它都会通过取模运算 `%` 检查当前位是否为1,如果是就增加计数。
阅读全文