PAT 乙級練習題1023 組個最小數 20

2021-08-09 03:15:56 字數 1033 閱讀 5806

給定數字0-9各若干個。你可以以任意順序排列這些數字,但必須全部使用。目標是使得最後得到的數盡可能小(注意0不能做首位)。例如:給定兩個0,兩個1,三個5,乙個8,我們得到的最小的數就是10015558。

現給定數字,請編寫程式輸出能夠組成的最小的數。

輸入格式:

每個輸入包含1個測試用例。每個測試用例在一行中給出10個非負整數,順序表示我們擁有數字0、數字1、……數字9的個數。整數間用乙個空格分隔。10個數字的總個數不超過50,且至少擁有1個非0的數字。

輸出格式:

在一行中輸出能夠組成的最小的數。

輸入樣例:

2 2 0 0 0 3 0 0 1 0
輸出樣例:

10015558

#includeint main()

if(a[0]==0)

}} else

printf("%d",i);

int m=i;

for(i=0;i<10;i++)

}else

}} }

return 0;

}

很尷尬一開一看錯了題,以為是任意輸入幾個數字,然後用這幾個數字組合成最小的數。

還是把**貼上來。

#include#includeint cmp(const void *a,const void *b)

int main()

; int i=0,n,m;

a[i]=getchar();

while(a[i]!='\n')

c=getchar();

if(c!=' ')

a[++i]=c;

}

n=i-1;

qsort(a,i,sizeof(a[0]),cmp);

if(a[0]!='0') }

else

{ printf("%c",a[g[0]]);//輸出第乙個最小乙個非零數

for(i=0;i

PAT 乙級練習 1023 組個最小數

本題鏈結 給定數字 0 9 各若干個。你可以以任意順序排列這些數字,但必須全部使用。目標是使得最後得到的數盡可能小 注意 0 不能做首位 例如 給定兩個 0,兩個 1,三個 5,乙個 8,我們得到的最小的數就是 10015558。現給定數字,請編寫程式輸出能夠組成的最小的數。輸入格式 輸入在一行中給...

PAT 乙級練習題 1005

當我們驗證卡拉茲猜想的時候,為了避免重複計算,可以記錄下遞推過程中遇到的每乙個數。例如對n 3進行驗證的時候,我們需要計算3 5 8 4 2 1,則當我們對n 5 8 4 2進行驗證的時候,就可以直接判定卡拉茲猜想的真偽,而不需要重複計算,因為這4個數已經在驗證3的時候遇到過了,我們稱5 8 4 2...

PAT 乙級練習題 1007

讓我們定義 dn 為 dn pn 1 pn,其中 pi 是第i個素數。顯然有 d1 1 且對於n 1有 dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 105 請計算不超過n的滿足猜想的素數對的個數。輸入格式 每個測試輸入包含1個測試用例,給出正整數n。輸出格式 ...