c语言LX408 水仙花数
时间: 2024-01-06 10:25:34 浏览: 53
以下是C语言中求解水仙花数的代码示例:
```c
#include <stdio.h>
int main() {
int i, a, b, c, s;
for(i = 100; i <= 999; i++) {
a = i / 100;
b = (i - a * 100) / 10;
c = i % 10;
s = a * a * a + b * b * b + c * c * c;
if(i == s) {
printf("%5d", i);
}
}
printf("\n");
return 0;
}
```
这段代码会输出所有的3位水仙花数。水仙花数是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
相关问题
c语言函数求水仙花数
以下是用C语言函数求水仙花数的代码示例:
```c
#include <stdio.h>
// 定义函数判断是否为水仙花数
int isArmstrong(int num) {
int originalNum, remainder, result = 0;
originalNum = num;
// 计算每位数字的立方和
while (originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
// 判断是否为水仙花数
if (result == num) {
return 1; // 是水仙花数
} else {
return 0; // 不是水仙花数
}
}
int main() {
int n;
printf("100-1000 包含的“水仙花”数分别有:\n\n");
for (n = 100; n < 1000; n++) {
if (isArmstrong(n)) {
printf("%-5d", n); // 输出水仙花数
}
}
printf("\n"); // 换行
return 0;
}
```
c语言打印所有水仙花数
以下是两种C语言打印所有水仙花数的例子:
1. 使用for循环和if语句判断是否满足水仙花数的特点
```c
#include<stdio.h>
int main() {
int bai, shi, ge;
int i, j=0;
printf("水仙花数有:\n");
for (i = 100;i < 1000;i++) {
bai = i / 100; //取百位数字
shi = (i % 100) / 10;//取十位数字
ge = i % 10; //取个位数字
if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge)//判断是否满足水仙花数的特点
{
printf(" %d ", i);
j++;
if (j % 5 == 0)//每五个数字一行
printf("\n");
}
}
return 0;
}
```
2. 使用for循环和数学库中的pow函数计算立方和
```c
#include<stdio.h>
#include<math.h>
int main() {
int i,sum;
printf("水仙花数有:");
for(i=100;i<1000;i++) {
sum=(i/100)*(i/100)*(i/100)+(i%100/10)*(i%100/10)*(i%100/10)+(i%100%10)*(i%100%10)*(i%100%10);
if(i==sum) {
printf("%d\n",sum);
}
}
return 0;
}
```