“水仙花数”是指一个三位数,它的各位数的立方和正好等于该数本身,如:153=1^3+3^3+5^3.请设计算法找一个100以内的“水仙花数”.

问题描述:

“水仙花数”是指一个三位数,它的各位数的立方和正好等于该数本身,如:153=1^3+3^3+5^3.请设计算法找一个100以内的“水仙花数”.

哈哈,只有先把各位分解。就是例如153,把百位,十位,个位分解,分解就得循环啦。然后在再次循环把每位按1^3+3^3+5^3就可以了。最后当然是判断最后的数是否相等啦。关键是分解各个数位啦。

main()
  {
  int i,j,k,n;
  printf("'water flower'number is:");
  for(n=100;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");
  }