求三位数的水仙花数之和 c语言 对于一个三位数n,若每位数字的立方和等于其自身,则称为水仙花数,求出所有三位数的水仙花数之和,不使用pow函数,无输入要求。
时间: 2024-02-24 14:57:08 浏览: 51
好的,这是一个比较简单的问题,下面是C语言的代码实现:
```c
#include <stdio.h>
int main() {
int n, sum = 0;
for (n = 100; n <= 999; n++) {
int i = n / 100; // 取百位数
int j = n / 10 % 10; // 取十位数
int k = n % 10; // 取个位数
if (i * i * i + j * j * j + k * k * k == n) {
sum += n; // 如果是水仙花数,则加入总和
}
}
printf("所有三位数的水仙花数之和为:%d\n", sum);
return 0;
}
```
代码中用 for 循环遍历了所有的三位数,并依次计算每个数的百位、十位和个位数字的立方和,如果等于该数本身,则说明该数是水仙花数,将其加入总和中。最后输出总和即可。
需要注意的是,这里没有使用 pow 函数来计算立方,而是直接将三个数字相乘。
相关问题
用c语言判断一个数是不是水仙花数,所谓水仙花数即这样的一个三位数,每一位上的数字的立方和等于这个三位数
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3;
printf("请输入一个三位数:");
scanf("%d", &num);
digit1 = num / 100; // 取百位数字
digit2 = num % 100 / 10; // 取十位数字
digit3 = num % 10; // 取个位数字
if (num == digit1*digit1*digit1 + digit2*digit2*digit2 + digit3*digit3*digit3) {
printf("%d是水仙花数\n", num);
} else {
printf("%d不是水仙花数\n", num);
}
return 0;
}
三位数水仙花数之和c语言
下面是一个求三位数水仙花数之和的 C 语言程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, n = 0, sum = 0;
// 枚举所有三位数
for (num = 100; num <= 999; ++num) {
originalNum = num;
n = 0;
sum = 0;
// 计算位数
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
// 计算每一位的立方和
while (originalNum != 0) {
remainder = originalNum % 10;
sum += pow(remainder, n);
originalNum /= 10;
}
// 判断是否为水仙花数
if (sum == num) {
printf("%d ", num);
}
}
return 0;
}
```
该程序会枚举所有三位数,计算每个数是否为水仙花数。如果是,程序会输出该数。最后输出的数之和就是所有三位数水仙花数之和。
阅读全文