C语言小任务——1000以内含有9的数字

打印 上一主题 下一主题

主题 956|帖子 956|积分 2868

步骤

第一步:分类

含有九的可能的情况:

个位有9,十位有9,百位有9,而根据组合数,我们可以得出,一共有7种情况,分别是

9##,#9#,##9,  99#,9#9,#99,999

想要按照这七种情况来找,很显着非常复杂,所以,我们采用另一种方法
第一步:求出小于1000的数字的每一位

  1. void getnum(int num, int* arr)
  2. {
  3.     int i = 0;
  4.     for (i = 0; i < 3; i++)
  5.     {
  6.         arr[2 - i] = num % 10;//我们这里,让百位在第一个,
  7.                              //十位在第二个,个位在第三个
  8.         num /= 10;
  9.     }
  10. }
复制代码
第二步:一旦有一个9,那么就符合标准(主函数执行逻辑判断)

  1. int main()
  2. {
  3.     int i = 0;
  4.     int j = 0;
  5.     int arr[3] = { 0,0,0 };
  6.     for (i = 0; i < 1000; i++)
  7.     {
  8.         getnum(i, arr);
  9.         for (j = 0; j < 3; j++)
  10.         {
  11.             if (arr[2-j] == 9)
  12.             {
  13.                 printf("%d\n", i);
  14.                 break;
  15.             }
  16.         }
  17.     }
  18.     return 0;
  19. }
复制代码
这里是完整的代码
  1. #define _CRT_SECURE_NO_WARNINGS 1
  2. #include<stdio.h>
  3. #include<string.h>
  4. #include<windows.h>
  5. #include <stdlib.h>
  6. #include <time.h>
  7. #include <math.h>
  8. void getnum(int num, int* arr)
  9. {
  10.         int i = 0;
  11.         for (i = 0; i < 3; i++)
  12.         {
  13.                 arr[2 - i] = num % 10;//我们这里,让百位在第一个,
  14.                                                          //十位在第二个,个位在第三个
  15.                 num /= 10;
  16.         }
  17. }
  18. int main()
  19. {
  20.         int i = 0;
  21.         int j = 0;
  22.         int arr[3] = { 0,0,0 };
  23.         for (i = 0; i < 1000; i++)
  24.         {
  25.                 getnum(i, arr);
  26.                 for (j = 0; j < 3; j++)
  27.                 {
  28.                         if (arr[2-j] == 9)
  29.                         {
  30.                                 printf("%d\n", i);
  31.                                 break;
  32.                         }
  33.                 }
  34.         }
  35.         return 0;
  36. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美丽的神话

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表