C语言对于一个正整数,若它只有0~9中的一种数字构成,我们就称其为好数。现在给你一个正整数,请判断它是否为好数。单组输入。一个正整数x(1<= x <= 10100000)若该数x是“好数”则输出“YES”。否则输出“NO”。(没有双引号)
时间: 2024-04-14 09:29:52 浏览: 149
c代码-读取一个正整数,显示其位数。
您好!根据您的要求,以下是一个使用C语言实现的判断给定正整数是否为好数的示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool isGoodNumber(unsigned long long num) {
char str[20]; // 假设正整数不超过20位
sprintf(str, "%llu", num);
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] < '0' || str[i] > '9') {
return false;
}
}
return true;
}
int main() {
unsigned long long num;
scanf("%llu", &num);
if (isGoodNumber(num)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
您可以将要判断的正整数输入到`num`变量中进行测试。请注意,由于题目要求正整数的范围较大,超过了C语言中常用的数据类型范围,因此我们使用了`unsigned long long`类型来表示输入的正整数。另外,为了能够将正整数转换为字符串进行逐个检查,我们使用了`sprintf`函数。
希望能对您有所帮助!如有任何问题,请随时提问。
阅读全文