PAT-B 1023. 组个最小数 (20)

    xiaoxiao2021-03-25  101

    题目链接在此。

    思路

    要输出最小的数,那么高位的数一定要比低位的数小才行。又因为第一位不能是0,所以第一位就需要从1~9中输出存在的最小的那个,然后接下来的那些位就依次输出0~9各自有的个数。

    AC代码

    #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int num[10]; int main(){ int index = 0; int temp; while(scanf("%d",&temp) != EOF){ num[index++] = temp; } //拿到第一位(除去0以外的最小的那个) for(int i = 1; i < 10; i++){ if(num[i] > 0){ printf("%d",i); num[i]--; //对应数字个数-1 break; } } //从小到大输出每个数字的所有数字 for(int i = 0; i < 10; i++){ for(int j = 0; j < num[i]; j++){ printf("%d",i); } } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-23194.html

    最新回复(0)