用C语言求100-999中的水仙花数。若三位数ABC,ABC=A3+B3+C3,则称ABC为水仙花数。 例如153,13+53+33=1+125+27=153,则153是水仙花数。 输入说明 无 输出说明 输出一行,为水仙花数,不同数之间用空格分隔,最后没有换行。
时间: 2024-02-12 20:06:06 浏览: 178
好的,以下是用 C 语言实现的代码:
```c
#include <stdio.h>
int main() {
int a, b, c, num;
for (num = 100; num <= 999; num++) {
a = num / 100;
b = (num / 10) % 10;
c = num % 10;
if (num == a*a*a + b*b*b + c*c*c) {
printf("%d ", num);
}
}
return 0;
}
```
这段代码使用了 for 循环来遍历 100 到 999 之间的数,对于每个数,分别计算出它的百位、十位和个位,然后判断它是否为水仙花数。如果是水仙花数,则输出该数。
相关问题
用C语言编写程序 输出100-999中所有的水仙花数。提示:若三位数ABC满足ABC = A3+B3+C3,则称其为水仙花数。
在C语言中,我们可以创建一个函数来检查一个数字是否是水仙花数,并遍历100到999范围内的所有数字进行判断。以下是实现这一功能的一个简单示例:
```c
#include <stdio.h>
// 检查是否为水仙花数的辅助函数
int is_armstrong_number(int num) {
int sum = 0, temp;
// 将数字分解为各位数字并计算它们的立方和
temp = num;
while (temp != 0) {
sum += pow((temp % 10), 3); // 使用pow函数计算立方
temp /= 10;
}
// 如果原数等于各位数字立方之和,那么它是水仙花数
return sum == num;
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (is_armstrong_number(i)) {
printf("%d 是一个水仙花数。\n", i);
}
}
return 0;
}
```
在这个程序中,我们首先定义了一个`is_armstrong_number`函数,它接受一个整数作为输入,然后通过取模和除法操作获取每一位数字,并计算它们各自的立方和。如果最终结果与原始数字相等,说明它是水仙花数。
在主函数`main`里,我们循环遍历100到999的所有整数,对每个数调用`is_armstrong_number`,如果是水仙花数就打印出来。
编写程序,求水仙花数。所谓水仙花数,是指一个三位数 abc,如果满足 a3+b3+c3=abc, 则 abc 是水仙花数。如 153 是水仙花数,1 3 +53 +33 =153。用C语言
以下是用 C 语言编写的求解水仙花数的程序:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int num, temp, sum = 0;
printf("水仙花数是:");
for(num = 100; num <= 999; num++)
{
temp = num;
while(temp != 0)
{
sum += pow(temp % 10, 3);
temp /= 10;
}
if(sum == num)
{
printf("%d ", num);
}
sum = 0;
}
printf("\n");
return 0;
}
```
程序中使用了一个 for 循环来遍历所有三位数,然后使用一个 while 循环来计算这个三位数的各位数字的立方和。如果计算出的立方和等于这个三位数本身,就说明这个数是水仙花数,将其输出即可。
阅读全文