C语言 使用循环嵌套求四叶玫瑰数(四位自幂数)
时间: 2024-10-20 15:07:14 浏览: 32
在C语言中,计算四叶玫瑰数(四位自幂数)意味着寻找那些等于其各位数字的立方和的正整数。例如,153(1^3 + 5^3 + 3^3 = 153)就是一个四叶玫瑰数。你可以通过嵌套循环的方式遍历所有四位数并检查它们是否满足条件。下面是一个简单的示例代码:
```c
#include <stdio.h>
// 判断四位数是否为四叶玫瑰数
int is_quadrille_number(int num) {
int digits[4];
int sum = 0;
// 分离每一位数字
while (num > 0) {
digits[3] = num % 10; // 最高位
num /= 10;
}
// 检查每一位的立方和是否等于原数
for (int i = 0; i < 4; i++) {
if (digits[i] * digits[i] * digits[i] != digits[i]) { // 如果不是立方,直接返回false
return 0;
}
sum += digits[i]; // 累加每一位立方
}
// 数字相等则返回true,否则false
return (sum == num);
}
int main() {
int start = 1000; // 四位数范围最小值
int end = 9999; // 四位数范围最大值
int quadrille_count = 0;
// 循环检查并计数四叶玫瑰数
for (int num = start; num <= end; num++) {
if (is_quadrille_number(num)) {
printf("%d 是一个四叶玫瑰数.\n", num);
quadrille_count++;
}
}
printf("共有 %d 个四叶玫瑰数在 %d 到 %d 之间.\n", quadrille_count, start, end);
return 0;
}
```
阅读全文