写一个水仙花数c语言代码
时间: 2023-09-06 15:04:05 浏览: 190
### 回答1:
#include <stdio.h>
int main()
{
int n, a, b, c, sum;
printf("输入一个三位数:");
scanf("%d", &n);
a = n / 100;
b = (n - a * 100) / 10;
c = n % 10;
sum = a * a * a + b * b * b + c * c * c;
if (sum == n)
printf("%d 是一个水仙花数。\n", n);
else
printf("%d 不是一个水仙花数。\n", n);
return 0;
}
### 回答2:
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。
以下是一个C语言代码来判断一个数是否为水仙花数:
```
#include <stdio.h>
int main() {
int number, originalNumber, remainder, result = 0, n = 0;
printf("请输入一个三位数:");
scanf("%d", &number);
originalNumber = number;
// 计算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)
printf("%d 是一个水仙花数", number);
else
printf("%d 不是一个水仙花数", number);
return 0;
}
```
在上面的代码中,我们首先读取一个三位数。接着,我们计算输入数的位数,并将其存储在变量n中。然后,我们计算每个位数的n次幂之和,并将结果存储在变量result中。最后,我们将结果与输入的数进行比较,以判断是否为水仙花数。如果相等,则输出"是一个水仙花数",否则输出"不是一个水仙花数"。
### 回答3:
水仙花数,也称为自恋数或阿姆斯特朗数,是指一个n位数(n≥3),其每个位上的数字的n次幂之和等于本身。
以下是一个用C语言编写的水仙花数判断程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
int number, originalNumber, remainder, result = 0, n = 0;
printf("请输入一个三位以上的整数:");
scanf("%d", &number);
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) {
printf("%d 是水仙花数。\n", number);
} else {
printf("%d 不是水仙花数。\n", number);
}
return 0;
}
```
运行程序时,用户需要输入一个三位数以上的整数。程序会计算每位数字的n次幂之和,并判断是否等于输入的数字。如果相等,则输出“是水仙花数”,否则输出“不是水仙花数”。
阅读全文