c语言编程输出 100至 999之间的所有水仙花数。
时间: 2023-05-20 22:01:39 浏览: 123
以下是C语言编程输出100至999之间的所有水仙花数的代码:
#include <stdio.h>
#include <math.h>
int main()
{
int i, j, k, n, sum;
printf("100至999之间的所有水仙花数为:\n");
for (n = 100; n <= 999; n++)
{
i = n / 100; //百位数
j = n / 10 % 10; //十位数
k = n % 10; //个位数
sum = pow(i, 3) + pow(j, 3) + pow(k, 3); //计算立方和
if (sum == n) //判断是否为水仙花数
{
printf("%d ", n);
}
}
return 0;
}
相关问题
C语言编程输出100至999中所有水仙花数。
好的,以下是 C 代码实现:
```
#include<stdio.h>
#include<math.h>
int main() {
for(int i=100; i<=999; i++) {
int a = i / 100; // 百位
int b = (i / 10) % 10; // 十位
int c = i % 10; // 个位
if(i == pow(a, 3) + pow(b, 3) + pow(c, 3)) {
printf("%d\n", i);
}
}
return 0;
}
```
这样就可以输出 100 至 999 中所有的水仙花数了。
用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()`函数来计算每个位的立方值。
希望这个回答能够帮到你!
阅读全文