帮我用c语言编写程序,输出给定正整数M和N区间内的所有三位水仙花数。三位水仙花数,即其个位、十位, 百位数字的立方和等于该数本身。 输入格式: 输入在一行中给出两个正整数M和N(100≤M≤N≤999)。 输出格式: 顺序输出M和N区间内所有三位水仙花数,每一行输出一个数。若该区间内没有三位水仙花数,则无输出。 如果M或者N不符合题目的要求,则输出玉nvaliaValue:。
时间: 2023-11-05 14:26:20 浏览: 243
输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。
好的,以下是C语言代码实现:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int m, n;
scanf("%d %d", &m, &n);
if(m < 100 || n > 999 || m > n)
{
printf("nvaliaValue:\n");
return 0;
}
int i;
for(i = m; i <= n; i++)
{
int a = i / 100; // 获取百位数
int b = i / 10 % 10; // 获取十位数
int c = i % 10; // 获取个位数
if(i == pow(a, 3) + pow(b, 3) + pow(c, 3)) // 判断是否为水仙花数
{
printf("%d\n", i);
}
}
return 0;
}
```
代码中,我们通过 `scanf` 函数获取输入的两个正整数 `m` 和 `n`,并通过 `if` 语句进行判断,如果不符合题目要求则直接输出 `nvaliaValue:` 并结束程序。接着,我们通过一个 `for` 循环遍历区间 `[m, n]` 中的所有数,分别获取其百位数、十位数和个位数,并判断是否为水仙花数,如果是则输出该数。
注意在计算立方和时,我们可以使用 `pow` 函数,该函数位于 `math.h` 头文件中,需要在程序中加入头文件才能使用。
阅读全文