C语言实现水仙花数判断及输出
以下是用C语言实现输出m~n之间的所有水仙花数的代码:
#include <stdio.h>
#include <math.h>
int is(int number) {
int temp = number;
int sum = 0;
int digit;
while (temp > 0) {
digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == number) {
return 1;
} else {
return 0;
}
}
int main() {
int m, n;
printf("请输入两个正整数(m 和 n,2 ≤ m,n ≤ 1000):");
scanf("%d %d", &m, &n);
printf("m~n之间的水仙花数有:\n");
for (int i = m; i <= n; i++) {
if (is(i)) {
printf("%d\n", i);
}
}
return 0;
}
首先,我们定义了一个名为is的函数,接受一个整数参数number。在函数内部,我们使用一个while循环来计算number的各位数字的立方和。首先,我们将number存储在一个临时变量temp中,然后使用取余运算和整除运算获取各个位的数字,并将其立方加入sum中。最后,我们将sum与number进行比较,如果相等,则返回1,表示number是水仙花数;否则,返回0,表示number不是水仙花数。
在main函数中,我们声明了两个整数变量m和n,用于存储用户输入的范围。使用printf函数提示用户输入两个正整数,并使用scanf函数将输入值存储在m和n中。
然后,我们使用for循环遍历m到n之间的所有数字,并调用is函数来判断每个数字是否是水仙花数。如果是水仙花数,则使用printf函数输出该数字。
编译并运行代码,你将能够输入两个正整数,然后输出m~n之间的所有水仙花数。输出结果将逐行显示水仙花数。
原文地址: https://www.cveoy.top/t/topic/bkNI 著作权归作者所有。请勿转载和采集!