c语言n位水仙花数代码
时间: 2023-12-25 14:26:59 浏览: 40
以下是用C语言编写的n位水仙花数代码示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n, i, sum, j;
printf("请输入位数n:");
scanf("%d", &n);
printf("%d位水仙花数有:\n", n);
for (i = pow(10, n - 1); i < pow(10, n); i++) {
sum = 0;
j = i;
while (j != 0) {
sum += pow(j % 10, n);
j /= 10;
}
if (sum == i) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
相关问题
C语言程序设计水仙花数代码
以下是两种C语言编写的水仙花数代码示例:
1. 使用循环和数学库函数pow()计算水仙花数:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, i, sum, j;
printf("100到1000的水仙花数有:\n");
for (num = 100; num <= 1000; num++) {
sum = 0;
j = num;
while (j != 0) {
i = j % 10;
sum += pow(i, 3); // 使用math.h库中的pow()函数来计算一个数字的n次方
j /= 10;
}
if (sum == num) {
printf("%d ", num);
}
}
printf("\n");
return 0;
}
```
2. 使用循环和条件判断计算水仙花数:
```c
#include <stdio.h>
int main() {
int x, y, z, m;
printf("水仙花数 :\n");
for (m = 100; m < 1000; m++) {
x = m / 100;
y = (m / 10) % 10;
z = m % 10;
if (m == x * x * x + y * y * y + z * z * z) {
printf("%6d", m);
}
}
printf("\n");
return 0;
}
```
用c语言输出n位水仙花数
水仙花数是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,153是一个3位数,它的每个位上的数字的3次幂之和等于它本身,即1^3 + 5^3 + 3^3 = 153。下面是一个用C语言输出n位水仙花数的示例代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n, i, j, sum, num;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("%d位水仙花数有:\n", n);
for (i = pow(10, n - 1); i < pow(10, n); i++) {
sum = 0;
num = i;
for (j = 1; j <= n; j++) {
sum += pow(num % 10, n);
num /= 10;
}
if (sum == i) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
运行程序后,输入一个正整数n,程序会输出n位水仙花数。例如,当n为3时,输出结果为:
```
请输入一个正整数n:3
3位水仙花数有:
153 370 371 407
```