当前位置:   article > 正文

水仙花数的两种解法_水仙花数算法

水仙花数算法

【题目呈现】

输出1100-999所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13 + 53 + 33。

【解法】

【解法一】

在已知范围内(100-999),我们可以通过遍历所有数字,并进行验证。

  1. #include<stdio.h>
  2. #include<math.h>
  3. int main(void)
  4. {
  5. for(int i = 100;i<1000;i++)
  6. {
  7. int hundreds = i/100;
  8. int tens = (i%100)/10;
  9. int unit = i%10;
  10. if(pow(hundreds,3)+pow(tens,3)+pow(unit,3)==i)
  11. printf("%d\n",i);
  12. }
  13. }

【解法二】

先通过三层嵌套循环找到水仙花数,再输出100-999之间的部分。

  1. #include<stdio.h>
  2. #include<math.h>
  3. int main(void)
  4. {
  5. for (int i=1;i<10;i++)
  6. {
  7. for (int j=0;j<10;j++)
  8. {
  9. for (int k=0;k<10;k++)
  10. {
  11. int num = pow(i,3)+pow(j,3)+pow(k,3);
  12. if (num<100) continue;
  13. else if(num>999) break;
  14. else if(num ==100*i+10*j+k)
  15. {
  16. printf("%d\n",num);
  17. }
  18. }
  19. }
  20. }
  21. }

 【总结】

两种解法的思考起点不同,但在知道检索范围的情况下,【解法一】更加简洁。

如有错误,望批评指正!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/722163
推荐阅读
相关标签
  

闽ICP备14008679号