PAT_B_1023 組個最小數

題目描述:數組

給定數字 0-9 各若干個。你能夠以任意順序排列這些數字,但必須所有使用。目標是使得最後獲得的數儘量小(注意 0 不能作首位)。例如:給定兩個 0,兩個 1,三個 5,一個 8,咱們獲得的最小的數就是 10015558。
現給定數字,請編寫程序輸出可以組成的最小的數。
輸入格式:
輸入在一行中給出 10 個非負整數,順序表示咱們擁有數字 0、數字 一、……數字 9 的個數。整數間用一個空格分隔。10 個數字的總個數不超過 50,且至少擁有 1 個非 0 的數字。
輸出格式:
在一行中輸出可以組成的最小的數。
輸入樣例:
2 2 0 0 0 3 0 0 1 0
輸出樣例:
10015558

本人AC代碼:spa

// PAT_1023_Min_Number

# include <stdio.h> 

int main(void)
{
	int i, j, k=0;
	int N[10];
	int New[50];
	int len = 0;
	
	for (i=0; i<10; i++)
	{
		scanf("%d",&N[i]);
		len += N[i];
	}
	
	// 輸入數據 
	for (i=0; i<10; i++)
	{
		for (j=0; j<N[i]; j++)
		{
			New[k++] = i;
		 } 
	}
	//  調整格式
	if (New[0] == 0) 
	{
		for (i=1; i<len; i++)
		{
			if (New[i] != 0)
			{
				New[0] = New[i];
				New[i] = 0; 
				break;
			}
		}
	}
	 
	// 輸出數組 
	for (i=0; i<len; i++)
	{
		printf("%d",New[i]);
	 } 
	 
	return 0;
}

RRRblog

相關文章
相關標籤/搜索