1-999水仙花数 c语言
时间: 2023-10-19 07:22:18 浏览: 132
以下是 C 语言实现 1-999 的水仙花数:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int num, digit, sum;
printf("1-999之间的水仙花数有:\n");
for(num = 1; num <= 999; num++)
{
sum = 0;
int temp = num;
while(temp > 0)
{
digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if(num == sum)
{
printf("%d ", num);
}
}
return 0;
}
```
程序输出结果:
```
1-999之间的水仙花数有:
1 153 370 371 407
```
其中,水仙花数指一个 n 位数 ( n>=3 ),它的每个位上的数字的 n 次幂之和等于它本身。例如,153 就是一个水仙花数,因为 $1^3 + 5^3 +3^3 = 153$。
相关问题
1-1000的水仙花数c语言
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
在C语言中计算1到1000之间的水仙花数,你可以使用一个循环结构遍历这个范围内的每一个三位数,并检查是否满足水仙花的条件。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_armstrong_number(int num) {
int original_num, remainder, sum = 0;
original_num = num;
// 将数转换成字符串便于处理每位数字
char str[4];
sprintf(str, "%d", num);
// 计算每一位的立方并累加
for (int i = 0; i < 3; ++i) {
remainder = str[i] - '0'; // 转换字符到数字
sum += pow(remainder, 3); // 立方运算
}
return sum == original_num; // 如果等于原数,则是水仙花数
}
int main() {
for (int i = 100; i <= 999; ++i) { // 遍历100到999
if (is_armstrong_number(i)) {
printf("%d is a Narcissistic number.\n", i);
}
}
return 0;
}
```
c语言1-1000水仙花数编程
水仙花数是指一个 n 位正整数 (n≥3),它的每个位上的数字的 n 次幂之和等于它本身。
例如:153 = 1^3 + 5^3 + 3^3,371 = 3^3 + 7^3 + 1^3。
以下是 C 语言代码实现 1-1000 的水仙花数:
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, j, k, n;
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
n = i * 100 + j * 10 + k;
if (n == pow(i, 3) + pow(j, 3) + pow(k, 3)) {
printf("%d ", n);
}
}
}
}
return 0;
}
```
输出结果为:
```
153 370 371 407
```
阅读全文