輸入乙個正整數陣列,陣列裡面所有數字拼接起來排成乙個數,列印能拼接出的所有數字最小的乙個。
例如輸入陣列{3,32,321},則列印出最小數字321323
const int g_maxnumberlength = 10;
char* g_strcombine1 = new char[g_maxnumberlength*2 +1];
char* g_strcombine2 = new char[g_maxnumberlength*2 +1];
int compare(const void* strnumber1,const void* strnumber2)
void printminnumber(int* numbers,int length)
qsort(strnumbers,length,sizeof(char*),compare);
for(int i=0;iprintf("%s",strnumbers[i]);
printf("\n");
}void test(char* testname, int* numbers, int length, char* expectedresult)
void test1()
;test("test1", numbers, sizeof(numbers)/sizeof(int), "12345");
}void test2()
;test("test2", numbers, sizeof(numbers)/sizeof(int), "321323");
}void test3()
;test("test3", numbers, sizeof(numbers)/sizeof(int), "321233233");
}void test4()
;test("test4", numbers, sizeof(numbers)/sizeof(int), "111111");
}void test5()
;test("test5", numbers, sizeof(numbers)/sizeof(int), "321");
}void test6()
int main()
題目1504 把陣列排成最小的數
題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。輸入 輸入可能包含多個測試樣例。對於每個測試案例,輸入的第一行為乙個整數m 1 m 100 代表輸入的正整數的個數。輸入的第二行包括m...
程式設計題目 把陣列排成最小的數
68.把陣列排成最小的數 陣列 演算法 題目 輸入乙個正整數陣列,將它們連線起來排成乙個數,輸出能排出的所有數字中最小的乙個。例如輸入陣列,則輸出這兩個能排成的最小數字 32132。請給出解決問題的演算法,並證明該演算法。思路 首先,肯定要考慮溢位問題。開始想用字串,後來改為了用list。思路是先把...
程式設計題目 把陣列排成最小的數
68.把陣列排成最小的數 陣列 演算法 題目 輸入乙個正整數陣列,將它們連線起來排成乙個數,輸出能排出的所有數字中最小的乙個。例如輸入陣列,則輸出這兩個能排成的最小數字 32132。請給出解決問題的演算法,並證明該演算法。思路 首先,肯定要考慮溢位問題。開始想用字串,後來改為了用list。思路是先把...