写一个求水仙花数的代码C语言
时间: 2023-09-25 22:06:44 浏览: 120
### 回答1:
下面是用C语言写的求水仙花数的代码:
```
#include <stdio.h>
int main() {
int i, j, k, n, m;
for (n = 100; n < 1000; n++) {
i = n / 100;
j = n / 10 % 10;
k = n % 10;
m = i * i * i + j * j * j + k * k * k;
if (n == m) {
printf("%d\n", n);
}
}
return 0;
}
```
这段代码从100到999循环,分解出每个数的百位、十位和个位,并计算它们的立方和,如果与原数相等,则输出该数,表示它是一个水仙花数。
### 回答2:
水仙花数是指一个三位数,其各个位上的数字立方之和等于该数本身。现在我们来编写一个用C语言求水仙花数的代码。
```c
#include <stdio.h>
int main() {
int num, digit, sum, temp; // 定义变量
printf("水仙花数是:");
for(num = 100; num <= 999; num++) {
sum = 0;
temp = num;
while(temp > 0) {
digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if(num == sum) {
printf("%d ", num);
}
}
printf("\n");
return 0;
}
```
运行这段代码,它会输出所有的水仙花数。输出结果如下:
水仙花数是:153 370 371 407
这段代码首先使用一个`for`循环遍历所有的三位数(100到999)。在循环中,使用`while`循环和取模运算(`%`)将三位数的每个位上的数字取出,并计算各个位数的立方之和。然后,将计算结果与原数进行比较,若相等则说明是水仙花数,将其输出。最后输出结果。
### 回答3:
水仙花数,也被称为自恋数或亲和数,是一个三位数,其各个位上的数字的立方和等于该数字本身。
下面是用C语言编写的求水仙花数的代码:
```c
#include <stdio.h>
int main() {
int number, originalNumber, remainder, result = 0;
printf("请输入一个三位数:");
scanf("%d", &number);
originalNumber = number;
while (originalNumber != 0) {
remainder = originalNumber % 10;
result += remainder * remainder * remainder;
originalNumber /= 10;
}
if (result == number) {
printf("%d 是水仙花数。\n", number);
}
else {
printf("%d 不是水仙花数。\n", number);
}
return 0;
}
```
首先,我们定义了四个变量:number(输入的三位数)、originalNumber(保存初始输入的数值)、remainder(每位数的余数)、result(每位数的立方和)。
然后,提示用户输入一个三位数,并通过scanf函数将其存储在number变量中。
接着,我们将number的值复制给originalNumber,以便在后续的循环中使用。
接下来,使用while循环来计算给定数字的个位、十位和百位数字的立方和。
在每次迭代中,我们通过除以10来获得number的最后一位数字,并计算其立方并加到result变量中。通过除以10来去掉已经处理的数字。
在完成循环后,我们将result与原始的number进行比较。如果它们相等,就打印出“number 是水仙花数。”的消息,否则打印出“number 不是水仙花数。”的消息。
最后,返回0,表示程序顺利结束。
阅读全文