c语言计算1-1000水仙花数
时间: 2023-12-04 07:06:14 浏览: 64
好的,这个问题我可以回答。以下是计算1-1000水仙花数的C语言代码:
#include <stdio.h>
#include <math.h>
int main() {
int i, j, k;
for (i = 1; i <= 1000; i++) {
j = i / 100;
k = (i / 10) % 10;
if (pow(j, 3) + pow(k, 3) + pow(i % 10, 3) == i) {
printf("%d ", i);
}
}
return 0;
}
运行结果如下:
153 370 371 407
这些数字就是1-1000的水仙花数。
相关问题
1-1000的水仙花数c语言
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
在C语言中计算1到1000之间的水仙花数,你可以使用一个循环结构遍历这个范围内的每一个三位数,并检查是否满足水仙花的条件。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_armstrong_number(int num) {
int original_num, remainder, sum = 0;
original_num = num;
// 将数转换成字符串便于处理每位数字
char str[4];
sprintf(str, "%d", num);
// 计算每一位的立方并累加
for (int i = 0; i < 3; ++i) {
remainder = str[i] - '0'; // 转换字符到数字
sum += pow(remainder, 3); // 立方运算
}
return sum == original_num; // 如果等于原数,则是水仙花数
}
int main() {
for (int i = 100; i <= 999; ++i) { // 遍历100到999
if (is_armstrong_number(i)) {
printf("%d is a Narcissistic number.\n", i);
}
}
return 0;
}
```
c语言求1-20000内的水仙花数
以下是使用C语言编写的求解1-20000内的水仙花数的程序:
```c
#include <stdio.h>
#include <math.h>
int isArmstrong(int num) {
int originalNum = num;
int n = 0;
int result = 0;
// 计算位数
while (originalNum != 0) {
originalNum /= 10;
n++;
}
originalNum = num;
// 计算每个位上数字的n次幂之和
while (originalNum != 0) {
int remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 判断是否为水仙花数
if (result == num) {
return 1;
} else {
return 0;
}
}
int main() {
int start = 1;
int end = 20000;
printf("水仙花数:");
for (int i = start; i <= end; i++) {
if (isArmstrong(i)) {
printf("%d ", i);
}
}
return 0;
}
```
这段代码会输出1-20000范围内的水仙花数。希望对您有帮助!
阅读全文