怎么用c语言实现水仙花数
时间: 2023-09-14 12:07:39 浏览: 78
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是使用C语言实现水仙花数的代码:
```c
#include <stdio.h>
int main()
{
int i, a, b, c;
for (i = 100; i < 1000; i++) {
a = i / 100; // 获取百位数
b = (i / 10) % 10; // 获取十位数
c = i % 10; // 获取个位数
if (i == a*a*a + b*b*b + c*c*c) {
printf("%d\n", i);
}
}
return 0;
}
```
该程序使用for循环遍历所有三位数,然后将每个数的百位、十位和个位数分别计算出来,再判断其是否为水仙花数。如果是水仙花数,则输出该数。
相关问题
用C语言实现水仙花数
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。在C语言中,我们可以编写一个函数来检查任意整数是否为水仙花数。下面是一个简单的实现示例:
```c
#include <stdio.h>
// 函数定义
int is_armstrong_number(int num) {
int original_num, remainder, sum = 0;
// 将数字转换为字符串以便逐位处理
char number_str[4]; // 足够存放3位数加一位终止符'\0'
sprintf(number_str, "%d", num);
original_num = atoi(number_str); // 取出原始数值
while (original_num != 0) {
remainder = original_num % 10; // 取余数
sum += remainder * remainder * remainder; // 立方并累加
original_num /= 10; // 移除最后一位数字
}
if (sum == num) {
return 1; // 是水仙花数
} else {
return 0; // 否则不是
}
}
int main() {
int num;
printf("请输入一个三位数:");
scanf("%d", &num);
if (is_armstrong_number(num)) {
printf("%d 是一个水仙花数。\n", num);
} else {
printf("%d 不是水仙花数。\n", num);
}
return 0;
}
使用c语言实现水仙花数的判断
水仙花数,也叫阿姆斯特朗数,是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。比如说,153就是一个水仙花数,因为1的三次幂+5的三次幂+3的三次幂=153。
以下是使用c语言实现水仙花数的判断的示例代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n, num, sum = 0, temp;
printf("请输入一个三位数:");
scanf("%d", &n);
num = n;
while (num != 0) {
temp = num % 10;
sum += pow(temp, 3);
num /= 10;
}
if (sum == n)
printf("%d 是水仙花数\n", n);
else
printf("%d 不是水仙花数\n", n);
return 0;
}
```
在这段代码中,我们首先从用户处获取一个三位数,然后将其保存在变量`n`中。接下来,我们使用一个while循环来计算n的每个数字的三次幂的和,并将其保存在变量`sum`中。最后,我们检查`sum`是否等于`n`,如果是,则说明这是一个水仙花数,否则不是。
阅读全文