c语言水仙花数的编程
作者:野牛程序员:2023-07-08 13:54:07C语言阅读 2792
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个用C语言编写的程序,用于查找并打印指定范围内的所有水仙花数:
#include <stdio.h>
#include <math.h>
int isArmstrongNumber(int number) {
int originalNumber, remainder, result = 0, n = 0;
originalNumber = number;
// 计算位数
while (originalNumber != 0) {
originalNumber /= 10;
++n;
}
originalNumber = number;
// 计算每个位上数字的n次幂之和
while (originalNumber != 0) {
remainder = originalNumber % 10;
result += pow(remainder, n);
originalNumber /= 10;
}
// 如果结果等于原始数字,则是水仙花数
if (result == number)
return 1;
else
return 0;
}
void printArmstrongNumbers(int start, int end) {
printf("水仙花数列表:\\n");
for (int i = start; i <= end; ++i) {
if (isArmstrongNumber(i)) {
printf("%d ", i);
}
}
}
int main() {
int start, end;
printf("请输入范围的开始和结束数字:");
scanf("%d %d", &start, &end);
printArmstrongNumbers(start, end);
return 0;
}你可以运行这个程序并输入范围的开始和结束数字,它将打印出指定范围内的所有水仙花数。请注意,输入的开始和结束数字必须是正整数,并且结束数字必须大于等于开始数字。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:用c++编写9×9乘法表
- 下一篇:求100~999之间的水仙花数
