当前位置:   article > 正文

每天一道算法题2022/2/26_小明对数位中含有2、0、1、8的数字很感兴趣,在1到40中这样的数包括1、2、8、10至3

小明对数位中含有2、0、1、8的数字很感兴趣,在1到40中这样的数包括1、2、8、10至3

【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。
注意,平方和是指将每个数分别平方后求和。
请问,在 1 到 2019 中,所有这样的数的平方和是多少?

思路:

代码:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int main()
  5. {
  6. long long sum = 0;
  7. int temp;
  8. for(int i=0; i<=2019; i++){
  9. temp = i;
  10. //遍历i中每一位,直至i中所有位遍历完成
  11. while(temp != 0){
  12. //判断当前个位是否含 2 0 1 9
  13. if(temp%10 == 2 || temp%10 == 0 || temp%10 == 1 || temp %10 == 9){
  14. sum += pow(i, 2);
  15. break;
  16. }
  17. //移位,变换当前个位
  18. temp /= 10;
  19. }
  20. }
  21. printf("sum = %lld", sum);
  22. return 0;

结果:

总结:

  本题的关键在于提取所遍历数中的每一位(通过while循环),判断其中是否含有 2 0 1 9 这四个数

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

闽ICP备14008679号