用c语言来计算1到1000以内的玫瑰花数
时间: 2024-03-24 10:40:18 浏览: 78
玫瑰花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。比如说 153 就是一个三位数的玫瑰花数,因为 1³ + 5³ + 3³ = 153。
以下是用 C 语言计算 1 到 1000 以内的玫瑰花数的代码:
```c
#include <stdio.h>
int main() {
int i, j, k, n, sum;
printf("1到1000以内的玫瑰花数如下:\n");
for (i = 1; i <= 1000; i++) {
n = 0;
sum = 0;
j = i;
while (j) {
n++; // 统计位数
j /= 10;
}
j = i;
while (j) {
k = j % 10;
sum += pow(k, n); // 计算每一位的 n 次幂之和
j /= 10;
}
if (sum == i) {
printf("%d\n", i); // 如果是玫瑰花数,则输出
}
}
return 0;
}
```
注意,这里使用了 `pow` 函数来计算数字的 n 次幂。需要在头文件中添加 `#include <math.h>`。
阅读全文
相关推荐









