zoukankan      html  css  js  c++  java
  • 1023. 组个最小数

    题目截图:

     

    思路:

      贪心算法。先找到不是 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 }
  • 相关阅读:
    202. Happy Number
    198. House Robber
    191. Number of 1 Bits
    190. Reverse Bits
    189. Rotate Array
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
    [leetcode]Single Number II
    [leetcode]Single Number
    [leetcode]Clone Graph
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/PAT1023.html
Copyright © 2011-2022 走看看