计算所有 N 位水仙花数用C语言
时间: 2024-10-10 21:05:50 浏览: 37
所有的水仙花数 c语言.zip
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。要在C语言中计算所有的N位水仙花数,你需要编写一个程序遍历指定范围内的所有N位整数,对每个数检查是否满足条件。
下面是一个简单的示例代码片段,用于计算N位水仙花数:
```c
#include <stdio.h>
// 检查一个数字是否是水仙花数
int is_narcissistic_number(int num, int n) {
int sum = 0;
int digit;
// 对于n位数,最多有n位
while (num > 0) {
digit = num % 10;
sum += digit * digit * digit;
num /= 10;
}
return sum == num;
}
// 遍历范围并打印水仙花数
void print_narcissistic_numbers(int start, int end, int n) {
for (int i = start; i <= end; ++i) {
if (is_narcissistic_number(i, n)) {
printf("%d ", i);
}
}
}
int main() {
int n = 3; // 你可以改变这个值来计算不同位数的水仙花数
int range_start = pow(10, n - 1); // 范围开始于最小的n位数
int range_end = pow(10, n) - 1; // 范围结束于最大的n位数
printf("N=%d 的水仙花数有:\n", n);
print_narcissistic_numbers(range_start, range_end, n);
return 0;
}
```
在这个代码中,`is_narcissistic_number` 函数负责判断一个数字是否是水仙花数,而 `print_narcissistic_numbers` 函数则在指定范围内找出并打印它们。运行此程序时,记得替换 `n` 的值为你想要计算几位数的水仙花数。
阅读全文