c语言打印出所有的 “水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的 三次方+3的三次方
时间: 2023-10-27 09:17:17 浏览: 149
好的,以下是使用C语言编写的打印出所有的“水仙花数”的程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, a, b, c;
for (i = 100; i < 1000; i++) {
a = i / 100; // 百位数
b = (i % 100) / 10; // 十位数
c = i % 10; // 个位数
if (i == pow(a, 3) + pow(b, 3) + pow(c, 3)) {
printf("%d\n", i);
}
}
return 0;
}
```
程序使用了循环语句来遍历100到999之间的所有三位数,然后将这个三位数分解成百位、十位和个位数,分别计算它们的立方和是否等于这个数本身,如果是,则输出这个数。注意,需要在程序中包含math.h头文件,以使用pow()函数计算立方。
相关问题
用c语言打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身
#include <stdio.h>
int main() {
int i, j, k;
for(i=1; i<=9; i++) {
for(j=0; j<=9; j++) {
for(k=0; k<=9; k++) {
int num = i*100 + j*10 + k;
if(num == i*i*i + j*j*j + k*k*k) {
printf("%d\n", num);
}
}
}
}
return 0;
}
用c语言打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。例如,153就是一个水仙花数,因为153=111+555+333
在C语言中,我们可以编写一个简单的程序来找出所有的水仙花数。这里是一个基本的示例:
```c
#include <stdio.h>
// 判断是否为水仙花数的函数
int is_armstrong(int num) {
int original_num = num;
int sum = 0;
int temp;
// 将数字转换为字符串并获取长度,方便计算每一位的立方
char digits[4];
sprintf(digits, "%d", num);
int len = strlen(digits);
for (int i = 0; i < len; i++) {
temp = digits[i] - '0'; // 转换为整数
sum += pow(temp, 3); // 累加每位立方
}
if (sum == original_num) {
return 1; // 是水仙花数
} else {
return 0; // 否则不是
}
}
int main() {
int start = 100; // 水仙花数范围从100开始
int end = 999; // 包含100到999的所有三位数
printf("水仙花数:\n");
for (int i = start; i <= end; i++) {
if (is_armstrong(i)) {
printf("%d\n", i);
}
}
return 0;
}
```
这个程序通过遍历100到999之间的所有三位数,检查它们是否满足水仙花数条件(即每位数字的立方和等于原数)。如果是,就打印出来。
阅读全文