C语言求所有的水仙花数,每行输出5个。要求:水仙花数的判断过程用函数实现
时间: 2024-05-14 19:11:52 浏览: 8
```
#include <stdio.h>
#include <math.h>
// 判断一个数是否为水仙花数
int isNarcissus(int num) {
int sum = 0;
int temp = num;
int digits = 0;
while (temp != 0) {
digits++;
temp /= 10;
}
temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, digits);
temp /= 10;
}
return sum == num;
}
int main() {
int count = 0;
for (int i = 100; i <= 999; i++) {
if (isNarcissus(i)) {
printf("%d ", i);
count++;
if (count % 5 == 0) {
printf("\n");
}
}
}
return 0;
}
```
相关问题
编程输出所有的水仙花数,要求:用一个c语言函数调用实现水仙花数的判断。
水仙花数是指一个三位数,它的每个位上的数字的立方和等于它本身。例如:153是一个水仙花数,因为153=1³+5³+3³。
下面是一个用 C 语言实现的输出所有水仙花数的程序:
```c
#include <stdio.h>
int isNarcissistic(int num) {
int digit, sum = 0, tmp = num;
while (tmp > 0) {
digit = tmp % 10;
sum += digit * digit * digit;
tmp /= 10;
}
return (num == sum);
}
int main() {
int i;
printf("所有水仙花数:\n");
for (i = 100; i < 1000; i++) {
if (isNarcissistic(i)) {
printf("%d\n", i);
}
}
return 0;
}
```
该程序中的 `isNarcissistic` 函数用于判断一个数是否为水仙花数。在 `main` 函数中,我们循环遍历 100 到 999 之间的所有三位数,对每个数调用 `isNarcissistic` 函数进行判断,如果是水仙花数,则输出。
c语言函数求水仙花数
以下是用C语言函数求水仙花数的代码示例:
```c
#include <stdio.h>
// 定义函数判断是否为水仙花数
int isArmstrong(int num) {
int originalNum, remainder, result = 0;
originalNum = num;
// 计算每位数字的立方和
while (originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
// 判断是否为水仙花数
if (result == num) {
return 1; // 是水仙花数
} else {
return 0; // 不是水仙花数
}
}
int main() {
int n;
printf("100-1000 包含的“水仙花”数分别有:\n\n");
for (n = 100; n < 1000; n++) {
if (isArmstrong(n)) {
printf("%-5d", n); // 输出水仙花数
}
}
printf("\n"); // 换行
return 0;
}
```