用c语言,如果一个正整数,其各个数位上的数字均满足要么是 0,要么是 1,则称该数字为 01 数。例如,1 和 10 都是 01 数。给定一个整数 n。请你计算,1∼n 中有多少个 01 数。
时间: 2024-02-09 16:10:48 浏览: 81
好的,这是一个算法题目。下面是一个使用C语言编写的解决方案:
```c
#include <stdio.h>
// 判断一个数是否是01数
int is01(int n) {
while (n > 0) {
if (n % 10 != 0 && n % 10 != 1)
return 0;
n /= 10;
}
return 1;
}
int main() {
int n, count = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
if (is01(i))
count++;
}
printf("%d\n", count);
return 0;
}
```
首先定义了一个 `is01` 函数,用来判断一个数是否是 01 数。然后在 `main` 函数中,输入一个整数 `n`,遍历 1 到 `n` 中的每一个数,如果是 01 数,则累加计数器。最后输出计数器的值即可。
希望能帮到您!
阅读全文