如何用C语言编写程序打印出水仙花数?

打印出所有的水仙花数,水仙花数即形如153=1的立方+5的立方+3的立方的数。打的不好,请不是见怪。谢谢!

其实不用这样麻烦地去分解每一位,在不要求性能的情况下,直接打印出来就行了噻。

#include <stdio.h>

int main(void)
{
int i,j,k;

for (i=1;i<=9;i++)
{
for (j=0;j<=9;j++)
{
for (k=0;k<=9;k++)
{
if (100*i + 10*j + k == i*i*i +j*j*j + k*k*k)
{
printf("%d%d%d\n",i,j,k);
}

}
}
}
return 0;
}

结果是:
153
370
371
407

Process returned 0 (0x0) execution time : 0.125 s
Press any key to continue.
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-24
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
2.程序源代码:
main()
{
int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
}

参考资料:http://www.ban102.com.cn/article/detail.asp?id=401

第2个回答  2009-04-24
#include<stdio.h>

int main ()
{int i,j,k,n;
printf("水仙花数:\n");
for (n=100;n<1000;n++)
{i=n/100; /*百位上的数*/
j=n/10-i*10;/*十位上的数*/
k=n%10; /*个位上的数*/
if (n == i*i*i + j*j*j + k*k*k)
printf("%d ",n);
}
printf("\n");
return 0;
}

大一c语言求水仙花数
1、首先打开编辑器,写上注释内容。2、新建4个变量,分别是num,b,s,g分别代表三位数,百位数,十位数,个位数。3、然后写for循环,从100开始,最后到1000,自增。4、然后分别求出这个三位数的百位,十位,个位。5、接着判断百位的3次方+十位的3次方+个位的3次方,看是否等于这个三位数,如果是...

水仙花数怎么用C语言写出来?
C语言写水仙花数要将给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为s),若s与给出的三位数相等, 三位数为“水仙花数”,反之,则不是水仙花数。include <stdio.h> int main(){ int hun, ten, ind, n;printf("result is:");for( n=100; n<1000; n++ ) \/*整数的取...

c语言中,如何输出所有的水仙花数
2. 编写判断水仙花数的函数:这个函数需要提取输入数值的个位、十位和百位数字,计算它们的立方和,并与原数值比较以确定是否为水仙花数。3. 遍历所有三位数:从100到999,对每个数使用判断函数,如果它是一个水仙花数,则输出它。下面是实现上述步骤的代码示例:```c include \/\/ 判断一个数是否为水仙...

水仙花数的c语言编程。
最后通过printf函数输出找到的水仙花数。四、总结:这是一个简单的C语言程序,通过基本的数学计算和逻辑判断操作实现了寻找水仙花数的功能。通过这个程序可以加深对水仙花数的理解和对C语言编程的掌握。

用c语言编写程序,打印一百到一千之间的所有水仙花数
打印一百到一千之间的所有水仙花数 1. 程序分析:我们需要使用for循环来遍历100到999之间的所有三位数。对于每个数,我们将计算其百位、十位和个位数字,并检查这些数字的立方和是否等于原数。2. 程序源代码:```c include int main() { int i, j, k, n;printf("水仙花数为:");for (n = ...

在C语言中输出所有水仙花,并统计水仙花个数,使用while语句?_百度知 ...
include <stdio.h> int main(){ int i,cnt;for(i=100,cnt=0;i<1000;++i){ if(i==(i%10)*(i%10)*(i%10)+(i\/10%10)*(i\/10%10)*(i\/10%10)+(i\/100)*(i\/100)*(i\/100)){ printf("%d\\n",i);cnt++;} } printf("%d\\n",cnt);return 0;} ...

如何实现用C语言输出所有的“水仙花数”?
C语言具体实现水仙花过程如下:一、问题描述:输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13 + 53 + 33。二、问题分析:根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的...

如何实现用C语言输出所有的“水仙花数”?
C语言输出所有“水仙花数”的实现步骤如下:1. 问题定义:目标是寻找所有三位数,其每个位上数字的立方和等于该数本身。例如,153是一个“水仙花数”,因为153 = 1^3 + 5^3 + 3^3。2. 分析问题:要验证一个三位数是否为“水仙花数”,需要将该数拆分为百位、十位和个位上的数字,计算这三个...

用c语言编写程序实现打印出100-999的所有水仙花数
\/ 题目:打印出100-999之间所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。\/ public static void main(String[...

C语言:输出100-999中所有水仙花数。
1. 输出100-999中所有水仙花数。```c void OutputNarcissusNumbers() { for (int i = 100; i < 1000; i++) { int sum = 0;int temp = i;int rem;for (int j = 0; j < 3; j++) { rem = temp % 10;temp \/= 10;sum += rem * rem * rem;} if (sum == i) { pr...

相似回答