写一个C程序,要求 求水仙花数 水仙花数: 是个三位数 ,并且这个数的 个位的立方+十位的立方+百位的立方 == 自己
时间: 2024-05-13 12:20:04 浏览: 64
以下是求解水仙花数的C程序:
```c
#include <stdio.h>
int main() {
int num, digit, sum;
printf("水仙花数为:\n");
for (num = 100; num < 1000; num++) {
sum = 0;
for (int i = 0; i < 3; i++) {
digit = num % 10;
num /= 10;
sum += digit * digit * digit;
}
if (sum == num) {
printf("%d ", sum);
}
}
printf("\n");
return 0;
}
```
程序中使用两层循环,外层循环枚举所有三位数,内层循环计算每个三位数的各位数字立方和。如果计算出来的立方和等于这个数本身,就是一个水仙花数。程序执行结果为:
```
水仙花数为:
153 370 371 407
```
相关问题
写一个c语言程序水仙花是指一个三位数并且满足各位数字的立方和等于该数本身的三位数。例如153是水仙花数,因为153=1*1*1+5*5*5+3*3*3.请编程计算并输出所有的水仙花数。 **输入格式要求:无 **输出格式要求:"%6d",且所有的水仙花数字在同一行。
好的,下面是C语言程序代码:
```
#include <stdio.h>
int main() {
int a, b, c, sum;
printf("所有的水仙花数为:");
for (int i = 100; i <= 999; i++) {
a = i / 100; // 分解百位数
b = i / 10 % 10; // 分解十位数
c = i % 10; // 分解个位数
sum = a*a*a + b*b*b + c*c*c; // 计算各位数字的立方和
if (sum == i) {
printf("%6d", i); // 输出水仙花数
}
}
printf("\n");
return 0;
}
```
程序的思路是利用for循环遍历所有三位数,分解每个三位数的百位数、十位数和个位数,然后计算该数的各位数字的立方和,判断是否与该数本身相等,如果满足条件则输出该数。最后所有的水仙花数在同一行输出。
编写程序,从键盘输入任意一个3位正整数,判断是否"水仙花数"。若是水仙花数,则输出"该三位数是水仙花数!",否则输出“该三位数不是水仙花数!”。 提示:所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。 例如:153是一个水仙花数,因为。用c语言写出
以下是C语言代码:
#include <stdio.h>
#include <math.h>
int main()
{
int num, originalNum, remainder, result = 0;
printf("请输入一个3位正整数:");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0)
{
remainder = originalNum % 10;
result += pow(remainder, 3);
originalNum /= 10;
}
if (result == num)
printf("%d是水仙花数!", num);
else
printf("%d不是水仙花数!", num);
return 0;
}
运行结果示例:
请输入一个3位正整数:153
153是水仙花数!
阅读全文