编写一个C语言,输出100到999之间的所有的“水仙花数”,所谓的“水仙花数”是指一个3位数,其各位数字立方和等于该数本身
时间: 2024-05-15 19:14:43 浏览: 160
好的,您的第一个问题是如何编写一个C语言程序输出100到999之间的所有的“水仙花数”。以下是代码实现:
```
#include <stdio.h>
int main() {
int i, j, k; // 定义三个变量表示三位数的百位、十位和个位
int sum; // 定义变量表示每个数的各位数字立方和
for(i = 1; i <= 9; i++) {
for(j = 0; j <= 9; j++) {
for(k = 0; k <= 9; k++) {
sum = i * i * i + j * j * j + k * k * k; // 求各位数字立方和
if(sum == i * 100 + j * 10 + k && sum >= 100 && sum <= 999) { // 判断是否为“水仙花数”
printf("%d\n", sum);
}
}
}
}
return 0;
}
```
这段代码使用三个循环遍历100到999之间的所有三位数,对每个数求各位数字的立方和,并判断是否等于该数本身,若相等则输出该数。输出结果为153、370、371、407。
相关问题
c语言求100到999之间所有的水仙花数并输出
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是使用C语言编写的一个简单程序,用于找到100到999之间的所有水仙花数,并将它们打印出来:
```c
#include <stdio.h>
int is narcissistic(int num) {
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == num;
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (is_narcissistic(i)) {
printf("%d ", i);
}
}
return 0;
}
```
这个程序首先定义了一个`is_narcissistic`函数,它接收一个整数作为输入,检查其是否为水仙花数。然后在主函数`main`中,通过循环遍历100到999范围内的每个数字,如果满足水仙花数条件,则输出该数字。
使用C语言编写程序搜索并输出100至999内所有水仙花数
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
以下是使用C语言编写的一个简单程序,它会搜索并输出100到999范围内的所有水仙花数:
```c
#include <stdio.h>
int is_armstrong(int num) {
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit; // 计算每位数的立方
temp /= 10;
}
return sum == num; // 如果计算结果等于原数,那么它是水仙花数
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (is_armstrong(i)) {
printf("%d 是水仙花数。\n", i);
}
}
return 0;
}
```
这个程序定义了一个`is_armstrong`函数,用于检查一个整数是否是水仙花数。然后在主函数里,我们遍历从100到999的所有数,并对每个数应用这个函数。如果返回值为真,则说明当前数是水仙花数,并打印出来。
阅读全文
相关推荐














