码迷,mamicode.com
首页 > 其他好文 > 详细

1023. 组个最小数

时间:2018-02-28 16:27:38      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:ring   can   技术分享   com   info   printf   ros   gpo   最小   

题目截图:

技术分享图片

 

思路:

  贪心算法。先找到不是 0 且最小的数输出,然后从小到大依次输出即可。注意:如果可以用 for 循环,那就不要用 while,效率极低。

 

代码:

 1 /*
 2     1023. 组个最小数
 3 */
 4 
 5 #include <stdio.h>
 6 #include <string.h>
 7 #include <math.h>
 8 #include <stdlib.h>
 9 #include <time.h>
10 
11 int num[10];
12 
13 int main() {
14     int i, j, t;
15     for(i=0; i<10; ++i) {
16         scanf("%d", &num[i]);
17     }
18     for(i=1; i<10; ++i) {    // 找除0之外的最小数 
19         if(num[i]) {
20             break;
21         }
22     }
23     printf("%d", i);        // 输出该数 
24     t = i;                    // 暂时储存次小数 
25     num[i]--;                // 个数-1 
26     for(i=0; i<num[0]; ++i)    printf("0");        // 输出 0 
27     for(i=0; i<num[t]; ++i) printf("%d", t);    // 输出次小数 
28     for(i=t+1; i<10; ++i) {                        // 输出其他 
29         for(j=0; j<num[i]; ++j) {
30             printf("%d", i);
31         }
32         
33     }
34 
35     return 0;
36 }

 

1023. 组个最小数

标签:ring   can   技术分享   com   info   printf   ros   gpo   最小   

原文地址:https://www.cnblogs.com/coderJiebao/p/PAT1023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!