c/c++语言开发共享习题2-6:排列

原先在《算法竞赛入门经典》看过这题,当时没想出来选择百度。结果洛谷再次跳出来了。很尴尬,忘了做题方法的我继续百度。重做了一遍,很惭愧 1 #include <stdio.h> 2 #include <string.h> 3 int main(void) 4 { 5 int a, b; 6 int s …

原先在《算法竞赛入门经典》看过这题,当时没想出来选择百度。结果洛谷再次跳出来了。很尴尬,忘了做题方法的我继续百度。重做了一遍,很惭愧

 1 #include <stdio.h>  2 #include <string.h>  3 int main(void)  4 {  5     int a, b;  6     int sum=0;  7     int ar[15];  8     memset(ar, 0, sizeof(ar));//memset将ar数组全部格式化为0  9     for (int n = 111; n <= 333; n++)//在111前不会重复,到333之后第三个数溢出1000 10     { 11         sum = 0;//重置计数器 12         a = n * 2; 13         b = n * 3; 14         ar[n / 100] = ar[n / 10 % 10] = ar[n % 10] = 1;//将出现的数字的位数在数组中记为1 15         ar[a / 100] = ar[a / 10 % 10] = ar[a % 10] = 1; 16         ar[b / 100] = ar[b / 10 % 10] = ar[b % 10] = 1; 17         for (int i = 1; i <= 9; i++) 18             sum += ar[i];//将数组中9个数字加起来 19         if (sum == 9)//若为9,则每个数字都出现过一遍 20             printf("%d %d %dn", n, a, b); 21         memset(ar, 0, sizeof(ar));//重置数组 22     } 23     return 0; 24  25 }

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/600530.html

(0)
上一篇 2021年5月9日
下一篇 2021年5月9日

精彩推荐