100到1000水仙花数c语言
时间: 2023-05-18 10:04:18 浏览: 80
以下是C语言代码,用于找出100到1000之间的水仙花数:
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, n = 0, result = 0;
for(num = 100; num <= 1000; num++) {
originalNum = num;
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
if (result == num) {
printf("%d ", num);
}
n = 0;
result = 0;
}
return 0;
}
相关问题
输出1000以内水仙花数c语言
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。在C语言中,你可以通过循环遍历100到999之间的所有整数,对每个数的百位、十位和个位分别计算立方,然后判断它们的和是否等于原数来找出水仙花数。
下面是一个简单的C语言程序示例:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_armstrong(int num) {
int original_num, remainder, sum = 0;
original_num = num;
while (original_num > 0) {
remainder = original_num % 10;
sum += remainder * remainder * remainder; // 计算立方和
original_num /= 10;
}
return sum == num; // 如果sum等于num,则是水仙花数,返回true,否则false
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (is_armstrong(i)) {
printf("%d 是一个水仙花数。\n", i);
}
}
return 0;
}
```
在这个程序中,`is_armstrong`函数检查一个给定的数是否是水仙花数,`main`函数则用于查找并打印出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;
}
```
阅读全文