用while循环实现999以内的水仙花数
时间: 2024-09-12 07:09:58 浏览: 39
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153就是水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。用while循环在C语言中实现查找999以内的所有水仙花数,可以这样做:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, digit[3], sum;
// 从100开始遍历,到999结束
while (num <= 999) {
// 获取每一位数字
digit[0] = num / 100;
digit[1] = (num % 100) / 10;
digit[2] = num % 10;
// 计算数字立方之和
sum = pow(digit[0], 3) + pow(digit[1], 3) + pow(digit[2], 3);
// 检查是否是水仙花数
if (sum == num) {
printf("%d is a narcissistic number.\n", num);
}
num++;
}
return 0;
}
```
这个程序会依次检查100到999之间的每个数,如果满足水仙花数条件,就会打印出来。
相关问题
在C语言中用do while循环实现999以内的水仙花数
在C语言中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。用do-while循环实现查找999以内所有水仙花数,可以按照以下步骤编写:
```c
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3;
do {
// 获取三位数
num = getchar();
digit1 = (num / 100); // 取百位
digit2 = (num % 100) / 10; // 取十位
digit3 = num % 10; // 取个位
// 检查是否为水仙花数
if (digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3 == num) {
printf("%d 是一个水仙花数。\n", num);
}
} while(num != EOF && num <= 999);
return 0;
}
```
在这个程序中,我们从用户输入开始,每次读取一个三位数并分解成三个数字。然后计算这三个数字的立方和,如果结果等于原始数字,则输出它是水仙花数。
用c语言循环语句求1000以内水仙花数之和
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
用C语言求1000以内所有水仙花数之和,可以使用嵌套循环来遍历每个三位数,并检查是否为水仙花数。以下是简单的步骤:
```c
#include <stdio.h>
int is_armstrong_number(int num) {
int sum = 0, original_num, remainder;
// 将数字分解成每一位
original_num = num;
while (original_num > 0) {
remainder = original_num % 10; // 取最后一位
sum += remainder * remainder * remainder; // 立方并累加
original_num /= 10; // 移除最后一位
}
// 检查是否是水仙花数
return sum == num;
}
int main() {
int total_sum = 0;
for (int i = 100; i <= 999; i++) { // 遍历100到999
if (is_armstrong_number(i)) {
total_sum += i; // 如果是水仙花数,加入总和
}
}
printf("1000以内所有水仙花数的和是:%d\n", total_sum);
return 0;
}
```
阅读全文