步骤
第一步:分类
含有九的可能的情况:
个位有9,十位有9,百位有9,而根据组合数,我们可以得出,一共有7种情况,分别是
9##,#9#,##9, 99#,9#9,#99,999
想要按照这七种情况来找,很显着非常复杂,所以,我们采用另一种方法
第一步:求出小于1000的数字的每一位
- void getnum(int num, int* arr)
- {
- int i = 0;
- for (i = 0; i < 3; i++)
- {
- arr[2 - i] = num % 10;//我们这里,让百位在第一个,
- //十位在第二个,个位在第三个
- num /= 10;
- }
- }
复制代码 第二步:一旦有一个9,那么就符合标准(主函数执行逻辑判断)
- int main()
- {
- int i = 0;
- int j = 0;
- int arr[3] = { 0,0,0 };
- for (i = 0; i < 1000; i++)
- {
- getnum(i, arr);
- for (j = 0; j < 3; j++)
- {
- if (arr[2-j] == 9)
- {
- printf("%d\n", i);
- break;
- }
- }
- }
- return 0;
- }
复制代码 这里是完整的代码
- #define _CRT_SECURE_NO_WARNINGS 1
- #include<stdio.h>
- #include<string.h>
- #include<windows.h>
- #include <stdlib.h>
- #include <time.h>
- #include <math.h>
- void getnum(int num, int* arr)
- {
- int i = 0;
- for (i = 0; i < 3; i++)
- {
- arr[2 - i] = num % 10;//我们这里,让百位在第一个,
- //十位在第二个,个位在第三个
- num /= 10;
- }
- }
- int main()
- {
- int i = 0;
- int j = 0;
- int arr[3] = { 0,0,0 };
- for (i = 0; i < 1000; i++)
- {
- getnum(i, arr);
- for (j = 0; j < 3; j++)
- {
- if (arr[2-j] == 9)
- {
- printf("%d\n", i);
- break;
- }
- }
- }
- return 0;
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |