输入在一行中给出两个正整数M和N(100≤M≤N≤999)。 输出格式: 顺序输出M和N区间内所有三位水仙花数,每一行输出一个数。若该区间内没有三位水仙花数,则无输出。 如果M或者N不符合题目的要求,则输出Invalid Value.。写一个简单的c代码
时间: 2024-04-15 21:28:40 浏览: 136
设有n个正整数,将他们连接成一排,组成一个最大的多位整数
好的,下面是一个简单的C代码,用于实现题目要求的功能:
```c
#include <stdio.h>
#include <math.h>
// 判断一个数是否为水仙花数
int isNarcissistic(int num) {
int original = num;
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += pow(digit, 3);
num /= 10;
}
return (sum == original);
}
int main() {
int M, N;
scanf("%d %d", &M, &N);
// 判断输入是否符合要求
if (M < 100 || M > 999 || N < 100 || N > 999 || M > N) {
printf("Invalid Value.\n");
return 0;
}
// 输出区间内的水仙花数
int found = 0;
for (int i = M; i <= N; i++) {
if (isNarcissistic(i)) {
printf("%d\n", i);
found = 1;
}
}
// 若没有水仙花数,则输出无
if (!found) {
printf("无\n");
}
return 0;
}
```
你可以将上述代码保存为一个名为 "narcissistic.c" 的文件,然后通过编译器(如gcc)进行编译运行。输入M和N,即可得到符合要求的三位水仙花数的输出结果。
阅读全文