用c语言求1到999的水仙花数
时间: 2023-09-26 19:06:30 浏览: 91
### 回答1:
c语言求1到999的水仙花数的代码如下:
```
#include <stdio.h>
#include <math.h>
int main() {
int i, a, b, c, x;
for (i = 100; i <= 999; i++) {
a = i % 10;
b = i / 10 % 10;
c = i / 100;
x = pow(a, 3) + pow(b, 3) + pow(c, 3);
if (x == i)
printf("%d\n", i);
}
return 0;
}
```
在上面的代码中,我们首先使用一个循环从100到999遍历所有三位数,然后利用数学函数pow求出每一位的立方和,最后判断立方和是否等于该数,如果是,则该数为水仙花数,输出该数即可。
### 回答2:
水仙花数是指一个n位数(n≥3),其各位数的立方和等于该数本身。我们可以使用C语言编写程序来求解1到999之间的水仙花数。
首先,我们需要遍历从1到999之间的所有数。对于每一个数,我们需要拆分它的每一个位数,并计算它们的立方和。如果立方和等于该数本身,那么该数就是水仙花数。
下面是一个使用C语言编写的示例代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int number, digit, sum;
printf("1到999之间的水仙花数为:\n");
for (int i = 1; i <= 999; i++) {
number = i;
sum = 0;
while (number > 0) {
digit = number % 10;
sum += pow(digit, 3);
number /= 10;
}
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
```
在这段代码中,我们使用了一个循环来遍历1到999之间的每一个数。内部的while循环用于将每一个位数的立方累加到sum变量中。最后,我们将sum与当前的数进行比较,如果相等,则输出该数。
运行这段代码,你将会得到1到999之间的所有水仙花数。
### 回答3:
水仙花数是指一个三位数,其各个位上的数字立方和等于该数本身。在1到999之间寻找水仙花数的算法可以使用C语言进行编写。以下是一个示例代码:
```c
#include <stdio.h>
int main() {
int num, temp, remainder, result = 0;
printf("1到999的水仙花数有:\n");
// 遍历1到999之间的每个数
for (num = 1; num <= 999; num++) {
temp = num;
result = 0;
// 计算各个位数的立方和
while (temp != 0) {
remainder = temp % 10;
result += remainder * remainder * remainder;
temp /= 10;
}
// 判断是否为水仙花数
if (result == num) {
printf("%d ", num);
}
}
return 0;
}
```
上述代码中,我们使用`for`循环遍历1到999之间的每个数。对于每个数字,我们使用`while`循环计算其各个位数的立方和,存储在变量`result`中。最后,我们将`result`与原始数字比较,如果相等,则表示该数字为水仙花数,将其打印输出。
阅读全文