写出100到999的所有水仙花数 C语言
时间: 2024-02-27 10:51:23 浏览: 25
可以使用循环语句和条件语句来实现输出100到999的所有水仙花数,以下是一个简单的C语言代码实现:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, digit, sum;
for (num = 100; num <= 999; num++) {
sum = 0;
int temp = num;
while (temp > 0) {
digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (num == sum) {
printf("%d\n", num);
}
}
return 0;
}
```
在上面的代码中,我们使用`for`循环从100到999遍历每个数字,然后使用一个临时变量`temp`来存储当前数字,使用`while`循环来将当前数字分离出每个位上的数字并计算它们的立方和得到`sum`,最后判断当前数字是否等于它的立方和,如果是,则输出该数字。需要注意的是,我们使用了math.h头文件中的`pow()`函数来计算数字的立方,因此需要在程序开头包含该头文件。
相关问题
写出水仙花数字的c语言代码
### 回答1:
#include<stdio.h>
int main()
{
int n,i,j,k,l;
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10%10;
k=n%10;
l=i*i*i+j*j*j+k*k*k;
if(l==n)
printf("%d\n",n);
}
return 0;
}
### 回答2:
#include <stdio.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
if (result == num) {
printf("%d 是一个水仙花数。\n", num);
} else {
printf("%d 不是一个水仙花数。\n", num);
}
return 0;
}
### 回答3:
水仙花数字是指一个三位数,其各个位上的数字的立方和等于该数本身。比如153就是一个水仙花数字,因为1³ + 5³ + 3³ = 153。以下是用C语言编写的判断一个三位数是否为水仙花数字的代码:
```c
#include <stdio.h>
int main()
{
int num, digit, result = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
int temp = num;
while (temp != 0) {
digit = temp % 10;
result += digit * digit * digit;
temp /= 10;
}
if (result == num) {
printf("%d是水仙花数字。\n", num);
} else {
printf("%d不是水仙花数字。\n", num);
}
return 0;
}
```
在这段代码中,首先要求用户输入一个三位数,然后通过一系列操作,将其各个位上的数字的立方和计算出来,最后与原数进行比较,判断是否相等。如果相等,则输出该数字是水仙花数字,否则输出该数字不是水仙花数字。
输出所有"水仙花数"。写出C语言代码
水仙花数是指一个三位数各个位上数字的立方和正好等于该数本身。例如153就是一个水仙花数,因为1³ + 5³ + 3³ = 153。
以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int i, j, k, n;
for (n = 100; n <= 999; n++) {
i = n / 100; // 百位
j = (n / 10) % 10; // 十位
k = n % 10; // 个位
if (n == i * i * i + j * j * j + k * k * k) {
printf("%d ", n);
}
}
return 0;
}
```
该代码使用for循环遍历100到999之间的所有三位数,然后将其拆分为百位、十位和个位数字,判断该数是否为水仙花数,如果是则输出。