写出100到999的所有水仙花数 C语言
时间: 2024-02-27 18:51:23 浏览: 30
可以使用循环语句和条件语句来实现输出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语言写出100到999的水仙花数
#include <stdio.h>
#include <math.h>
int main() {
int i, j, k, num, sum;
printf("水仙花数有:");
for(i=1; i<=9; i++) {
for(j=0; j<=9; j++) {
for(k=0; k<=9; k++) {
num = i*100 + j*10 + k;
sum = pow(i,3) + pow(j,3) + pow(k,3);
if(num == sum) {
printf("%d ", num);
}
}
}
}
printf("\n");
return 0;
}
写出水仙花数字的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;
}
```
在这段代码中,首先要求用户输入一个三位数,然后通过一系列操作,将其各个位上的数字的立方和计算出来,最后与原数进行比较,判断是否相等。如果相等,则输出该数字是水仙花数字,否则输出该数字不是水仙花数字。