c语言循环07:水仙花数 打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该 数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。 输入无 输出 153 370 371 407
时间: 2024-09-26 07:07:09 浏览: 96
水仙花数是一种特殊的整数现象,它由三个位数组成,每个位上的数字分别立方后相加,结果恰好等于原数本身。在C语言中,我们可以编写一个简单的程序来找出并打印所有符合条件的水仙花数。以下是一个示例程序:
```c
#include <stdio.h>
int main() {
int num;
for (num = 100; num <= 999; ++num) { // 遍历三位数范围
int digits[3];
digits[0] = num / 100; // 取百位
digits[1] = (num % 100) / 10; // 取十位
digits[2] = num % 10; // 取个位
if (digits[0] * digits[0] * digits[0] + digits[1] * digits[1] * digits[1] + digits[2] * digits[2] * digits[2] == num) {
printf("%d ", num); // 如果满足条件,打印出来
}
}
return 0;
}
```
这个程序首先定义了一个循环,遍历从100到999的所有三位数。然后将每一位数字提取出来,并计算它们各自的立方和。如果和等于原始数字,就将其打印出来。
相关问题
打印所有水仙花数。所谓水仙花是指一个三位数,其各位数字的立方和等于该数,使用c语言
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。你可以使用循环语句来遍历所有的三位数,并判断是否满足水仙花数的条件。以下是一个示例代码:
```c
#include <stdio.h>
int main() {
int num, digit, sum;
printf("所有水仙花数:\n");
for (num = 100; num <= 999; num++) {
sum = 0;
int temp = num;
while (temp > 0) {
digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == num) {
printf("%d\n", num);
}
}
return 0;
}
```
在这个代码中,我们使用一个循环来遍历从100到999的所有三位数。对于每个数字,我们将其拆分为个位、十位和百位,分别计算每位数字的立方,并累加到`sum`中。
如果在循环结束后,`sum`的值等于当前的数字`num`,则说明该数字是一个水仙花数,我们将其打印出来。
运行以上代码,你将得到所有的水仙花数。
c语言 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
### 回答1:
可以用C语言编写程序打印出所有的水仙花数。以下是一个示例程序:
```
#include <stdio.h>
int main() {
int i, j, k, n;
for (n = 100; n <= 999; n++) {
i = n / 100;
j = (n % 100) / 10;
k = n % 10;
if (i*i*i + j*j*j + k*k*k == n) {
printf("%d\n", n);
}
}
return 0;
}
```
这个程序使用了一个for循环来遍历所有的三位数,然后分别计算出其百位、十位和个位上的数字,进行立方和的计算,如果等于原数则打印出来。注意,每个水仙花数只会被打印一次。
### 回答2:
C语言可以使用循环和条件判断来打印出所有的“水仙花数”。
首先,我们需要使用循环从100到999遍历所有的三位数。在每个迭代中,我们将提取当前数的个位、十位和百位数字。
然后,我们可以通过将每个数字的立方相加来求解立方和。如果立方和等于当前数本身,则它是一个水仙花数,我们可以打印出来。
下面是使用C语言编写的示例代码:
```c
#include <stdio.h>
int main() {
int num, digit, sum;
printf("水仙花数为:\n");
for (num = 100; num <= 999; num++) {
sum = 0;
int temp = num;
while (temp > 0) {
digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == num) {
printf("%d ", num);
}
}
return 0;
}
```
执行上述代码后,将会输出所有的水仙花数。
### 回答3:
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。我们可以使用C语言编写一个程序来打印出所有的水仙花数。
首先,我们需要在程序中定义一个循环,从100到999,每个数都检查是否是水仙花数。在每个循环中,我们将当前的三位数拆分为个位、十位和百位数字,并计算这些数字的立方和。如果立方和等于原始数字本身,则打印这个数。
下面是一个简单的C语言程序,用于打印所有的水仙花数:
#include <stdio.h>
int main()
{
int num, digit, cube_sum;
printf("水仙花数有:\n");
for (num = 100; num <= 999; num++)
{
cube_sum = 0;
int temp = num;
while (temp > 0)
{
digit = temp % 10;
cube_sum += (digit * digit * digit);
temp /= 10;
}
if (cube_sum == num)
{
printf("%d\n", num);
}
}
return 0;
}
当我们运行这个程序时,它将输出所有的水仙花数:
水仙花数有:
153
370
371
407
这个程序使用了循环和条件语句来计算并判断是否是水仙花数,它可以方便地找到所有满足条件的三位数。
阅读全文