当前位置:   article > 正文

1、获取需要的数字(C语言)

1、获取需要的数字(C语言)
小明今天过 18 岁的生日,常规来说,需要在蛋糕上插入 18 跟蜡烛,但是小明是程序员,考虑到 18
二进制字符串是 “1 0010” ,所以他在蛋糕上插入了 5 根蜡烛,其中点燃了两根,表示 “1” ,没有点燃的表
“0”
输入输出要求:
1 、输入一个 10 进制的整数,表示年龄
输出三个数,第一个表示二进制字符串,第二个是点燃蜡烛的数量,第三个是总蜡烛数
2 、验证是否符合猜想
任意一个大于 9 的整数减去它的各位数字之和所得的差 , 一定能被 9 整除
输入输出要求:
输入一个整数
输出布尔类型,表示是否符合猜想
该算法使用Start Experimental Instance of Visual Studio 2022软件实现
运行代码
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define N 100
  4. int main()
  5. {
  6. //输入一个10进制的整数,表示年龄
  7. //输出三个数,第一个表示二进制字符串,第二个是点燃蜡烛的数量,第三个是总蜡烛数
  8. int n, a[N];
  9. int countA = 0;
  10. int countB = 0;
  11. int i = 0;
  12. printf("请输入十进制数n:");
  13. scanf_s("%d", &n);
  14. //将十进制数转化成二进制数,并存入数组中
  15. while (n > 0)
  16. {
  17. a[i] = n % 2;
  18. i = i + 1;
  19. n = n / 2;
  20. }
  21. //输出数组中的数
  22. for (i--; i >= 0; i--)
  23. {
  24. printf("%d", a[i]);
  25. //记录二进制中1的个数
  26. if (a[i] == 1)
  27. {
  28. countA++;
  29. }
  30. //记录转换成的二进制数的位数
  31. if (a[i] == 1 || a[i] == 0)
  32. {
  33. countB++;
  34. }
  35. }
  36. printf("\n");
  37. printf("点燃蜡烛的数量:%d", countA);
  38. printf("\n");
  39. printf("总蜡烛数:%d\n", countB);
  40. //验证是否符合猜想
  41. // 任意一个大于9的整数减去它的各位数字之和所得的差, 一定能被9整除
  42. printf("\n");
  43. int k, m, l;
  44. int sum;
  45. sum = 0;
  46. printf("请输入一个大于9的数:\n");
  47. scanf_s("%d", &k);
  48. l = k;
  49. //输入得数各位之和
  50. while (k > 0)
  51. {
  52. sum += k % 10;
  53. k /= 10;
  54. }
  55. //该数与各位之和的差值
  56. m = l - sum;
  57. if (m % 9 == 0)
  58. {
  59. printf("\n\n");
  60. printf("true");
  61. printf("\n\n");
  62. }
  63. else
  64. {
  65. printf("差值不能被9整除\n");
  66. }
  67. return 0;
  68. }

  

演示结果

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

闽ICP备14008679号