四叶玫瑰数是指一个四位数,其各位数字的四次方之和等于该数本身。以下是一个用C语言编写的程序,用于计算并输出指定范围内的所有四叶玫瑰数:
```c
include
int main() {
int i, j, t;
for (i = 1000; i < 10000; i++) {
int a = i / 1000; // 千位
int b = i / 100 % 10; // 百位
int c = i / 10 % 10; // 十位
int d = i % 10; // 个位
if (a * a * a * a + b * b * b * b + c * c * c * c + d * d * d * d == i) {
printf("%d是四叶玫瑰数\n", i);
}
}
return 0;
}
```
代码解释:
循环遍历 :程序从1000遍历到9999,检查每个数是否为四叶玫瑰数。
提取各位数字
`a = i / 1000;`:提取千位数字。
`b = i / 100 % 10;`:提取百位数字。
`c = i / 10 % 10;`:提取十位数字。
`d = i % 10;`:提取个位数字。
计算四次方和
`a * a * a * a`:千位数字的四次方。
`b * b * b * b`:百位数字的四次方。
`c * c * c * c`:十位数字的四次方。
`d * d * d * d`:个位数字的四次方。
判断是否等于原数
如果 `a * a * a * a + b * b * b * b + c * c * c * c + d * d * d * d == i`,则该数是四叶玫瑰数,输出该数。
示例输出:
```
1634是四叶玫瑰数
8208是四叶玫瑰数
9474是四叶玫瑰数
```
这个程序可以有效地找出并输出指定范围内的所有四叶玫瑰数。