c语言编程题打印出所有的“水仙花数”所谓“水仙花数”是指一个三位数其各位数字立方和等于该数本身

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编程题打印出所有的“水仙花数”所谓“水仙花数”是指一个三位数其各位数字立方和等于该数本身相关的知识,希望对你有一定的参考价值。

打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
本身。例如: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");
参考技术A  /**
 * 打印 10000 以内的所有水仙花数
 * 
 * 所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。
 * 例如:153是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3
 * 
 * 1) 检查一个数num是否为水仙花数
 * 2) 检查一个范围内全部的num是否为水仙花数
 * 
 * num = 153;
 * n1 = 1  = num/10/10%10
 * n2 = 5  = num/10%10
 * n3 = 3  = num%10 
 * 
 * sum = 0; //每个数字3次方的累加和
 * 
 * n = num%10;  //n = 3    取最后一位
 * num = num/10;//num = 15 消掉最后一位
 * sum+= n*n*n
 * 
 * n = num%10;  //n=  5    取最后一位
 * num = num/10;//num = 1  消掉最后一位
 * sum+= n*n*n
 * 
 * n = num%10;  //n=  1    取最后一位 
 * num = num/10;//num = 0  消掉最后一位
 * sum+= n*n*n
 * 
 * num==0 结束
 * sum 3次方的累加和 
 * sum == num 相等 num 是水仙花数
 */
public class Demo04 
 public static void main(String[] args) 
  for(int number=2; number<=100000; number++)
   int num = number;
   int sum = 0;
   while(true)
    int n = num%10;
    num /= 10;//num = num/10;
    sum += n*n*n;
    //System.out.println("n:"+n);//跟踪语句,跟踪n
    if(num==0)
     break;
    
   
   if(sum==number)
    System.out.print(number+" "); 
   
  
 

希望能帮到你 望采纳!

参考技术B public class ShuiXianShu


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

for(int i=100;i<=999;i++)

int geWei,shiWei,baiWei;
baiWei=i/100;
shiWei=(i-baiWei*100)/10;
geWei=i-baiWei*100-shiWei*10;
if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei)

System.out.println(i);





参考技术C 打印100-999之间的水仙花数!

方法1:
main()

int a,b,c,d;
for(a=100;a<=99;a++)
b=a/100;
c=a/10-b*10;
d=a-b*100-c*10;
if(b*b*b+c*c*c+d*d*d==a) printf("%d",a);


方法2:
main()

int i,j,k;
for(i=1;i<=9;i++)
for(j=1;j<=9;j++)
for(k=1;k<=9;k++)

if((i*i*i+j*j*j+k*k*k)==(i*100+j*10+k))
printf("%d",i*100+j*10+k);

参考技术D public static void main(final String[] args) 
System.out.println("所有的水仙花数如下:");
int x; // 百分位
int y; // 十位
int z; // 个位
for (int i = 100; i < 1000; i++) 
x = i / 100;
y = (i- x * 100) / 10;
z = i % 10;
if (i == (cubic(x) + cubic(y) + cubic(z))) 
System.out.println(String.format("找到水仙花数:%d", i));



private static int cubic(final int n) 
return (n * n * n);

所有的水仙花数如下:

找到水仙花数:153

找到水仙花数:370

找到水仙花数:371

找到水仙花数:407

以上是关于c语言编程题打印出所有的“水仙花数”所谓“水仙花数”是指一个三位数其各位数字立方和等于该数本身的主要内容,如果未能解决你的问题,请参考以下文章

C语言试题108之打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153 是一个“水仙花数”,因为 153=1 的三次方+5 的三次方+3 的三次方。

c语言编程题 找出所有的水仙花数,水仙花数是指一个3位数

C语言 水仙花数 编程题

实例013:所有水仙花数

编程输出1000以内的所有水仙花数,所谓水仙花数是指一个3位数,其各位数字的立方和等于其本身

打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。(示例代码