那C语言写一个“水仙花”代码
时间: 2024-06-01 20:10:06 浏览: 30
#include<stdio.h>
#include<math.h>
int main()
{
int num, digit, sum = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
digit = num;
while(digit > 0)
{
sum += pow(digit % 10, 3);
digit /= 10;
}
if(sum == num)
printf("%d是水仙花数\n", num);
else
printf("%d不是水仙花数\n", num);
return 0;
}
相关问题
用c语言写一个水仙花代码
我可以给你一个简单的水仙花代码:
#include <stdio.h>
int main()
{
int i, j, k, n;
printf("请输入一个三位数:");
scanf("%d", &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);
}
else
{
printf("%d 不是水仙花数", n);
}
return 0;
}
用c语言写一个水仙花的代码
### 回答1:
#include<stdio.h>
int main()
{
int n, a, b, c, d;
printf("输入一个三位数:");
scanf("%d", &n);
a = n / 100;
b = n / 10 % 10;
c = n % 10;
d = a*a*a + b*b*b + c*c*c;
if(d == n)
printf("%d 是水仙花数。", n);
else
printf("%d 不是水仙花数。", n);
return 0;
}
### 回答2:
水仙花数是指一个3位数,其各位数字的立方和等于该数本身。下面是用C语言写的一个水仙花数的代码:
```c
#include <stdio.h>
int main() {
int num, digit, sum;
printf("水仙花数有:\n");
for (num = 100; num <= 999; num++) {
int temp = num;
sum = 0;
while (temp > 0) {
digit = temp % 10;
sum += digit * digit * digit; // 将各位数字的立方累加
temp /= 10;
}
if (sum == num) {
printf("%d\n", num); // 输出水仙花数
}
}
return 0;
}
```
该代码首先使用一个循环遍历3位数的所有数,从100到999。在循环内部,使用一个临时变量`temp`来保存当前正在计算的数,然后使用一个`while`循环来逐个提取`temp`中的各位数字。取模操作`temp % 10`可以得到最后一位数字,累加其立方到`sum`变量中。然后通过除以10来去掉最后一位数字,以便提取下一位数字。最后,如果`sum`等于原来的数`num`,则可以认为是一个水仙花数,进行输出。
希望这个代码对你有所帮助!
阅读全文