帮我用c语言编写程序,输出给定正整数M和N区间内的所有三位水仙花数。三位水仙花数,即其个位、十位, 百位数字的立方和等于该数本身。 输入格式: 输入在一行中给出两个正整数M和N(100≤M≤N≤999)。 输出格式: 顺序输出M和N区间内所有三位水仙花数,每一行输出一个数。若该区间内没有三位水仙花数,则无输出。 如果M或者N不符合题目的要求,则输出InvalidValue:。
时间: 2023-11-05 09:26:15 浏览: 215
以下是 C 语言的代码实现:
#include <stdio.h>
int main()
{
int m, n, i, j, k;
int num, sum;
scanf("%d %d", &m, &n);
if (m < 100 || m > 999 || n < 100 || n > 999 || m > n)
{
printf("InvalidValue:\n");
return 0;
}
for (num = m; num <= n; num++)
{
i = num / 100;
j = num / 10 % 10;
k = num % 10;
sum = i * i * i + j * j * j + k * k * k;
if (num == sum)
{
printf("%d\n", num);
}
}
return 0;
}
程序首先读入两个正整数 M 和 N,如果 M 或 N 不在 100 到 999 的范围内,或者 M 大于 N,则输出 InvalidValue 并结束程序。
接着程序利用一个 for 循环遍历 M 到 N 区间内的所有数字,对于每个数字,分别计算其百位、十位和个位数字的立方和,并与该数字本身比较。如果相等,则说明该数字是一个三位水仙花数,输出该数字即可。
注意输出格式,每输出一个数字就需要换行。
相关推荐
















