c语言中 遍历100-999之间的水仙花数
时间: 2024-05-14 19:19:04 浏览: 96
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153 = 1^3 + 5^3 + 3^3。
下面是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int i, num, digit1, digit2, digit3;
for (i = 100; i <= 999; i++) {
digit1 = i / 100; // 获取百位数字
digit2 = (i / 10) % 10; // 获取十位数字
digit3 = i % 10; // 获取个位数字
// 判断是否为水仙花数
if (i == digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3) {
printf("%d\n", i);
}
}
return 0;
}
```
运行该程序将输出 100-999 之间的水仙花数,结果如下:
```
153
370
371
407
```
相关问题
c语言用输入100-999的水仙花数
水仙花数指一个三位数,其各位数字的立方和等于该数本身。例如153就是一个水仙花数,因为1的立方+5的立方+3的立方等于153。
以下是C语言代码示例:
```c
#include <stdio.h>
int main()
{
int num, i, temp, sum;
printf("请输入100-999之间的水仙花数:\n");
for(num = 100; num <= 999; num++)
{
temp = num;
sum = 0;
while(temp != 0)
{
i = temp % 10;
sum += i * i * i;
temp /= 10;
}
if(num == sum)
{
printf("%d\n", num);
}
}
return 0;
}
```
该程序使用 for 循环遍历 100-999 的三位数,对每个数进行水仙花数判断,如果是水仙花数就输出。在判断水仙花数时,使用 while 循环对每个数的各个位进行计算,最后与原数比较。
用C语言实现输出100-999之间所有的水仙花数,并做详细解释
好的,第一个问题是关于C语言的编程实现。水仙花数,也称为阿姆斯特朗数,是指一个三位数,其各个位上数字立方和等于该数本身。例如,153是一个水仙花数,因为 $1^3 + 5^3 + 3^3 = 153$。
以下是C语言的实现方法:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int num, digit, sum;
printf("Waterflower numbers between 100 and 999:\n");
for(num = 100; num <= 999; num++) {
sum = 0;
for(int i = num; i > 0; i /= 10) {
digit = i % 10;
sum += pow(digit, 3);
}
if(sum == num) {
printf("%d ", num);
}
}
return 0;
}
```
这段代码首先定义一个变量`num`,用于遍历100-999之间的数字。在循环中,对于每个数字,使用一个变量`sum`记录每个数字各位立方和,并将其与原数字比较,如果刚好相等,则该数字为水仙花数,输出即可。
需要注意的是,在循环中我们使用了一个内部循环,通过将数字除以10并取余数的方式来逐位获取数字,并将每个位的立方和加起来。同时,我们还需要调用数学库中的`pow()`函数来计算每个位的立方值。
希望这个回答能够帮到你!
阅读全文