大約有兩種方法
來處理 用字串來比較兩數字
solution 1:
//p1012 拼數
#include
#include
#include
#include
#include
#define maxn 21
using
namespace
std;
int n, i;
string s[maxn];
bool cmp(string s1, string s2)
return s1 > s2;
}int main()
/*問題如下:
123321 和 123 兩個數字
123021 和 123 兩組數字
以上兩組顯然需求的排列的順序不同
但若按字典序排列則是相同的
所以我們有如下奇技淫巧 :
將兩個數字較短的那個重複若干次 直到短的那個比長的那個原長要長
由於上面的方法要判斷 我們不如同時重複 便於設計程式
*/
solution 2 (更優~~):
//p1012 拼數
//by 陳逸彤
#include
#include
#include
#include
#include
#define maxn 21
using
namespace
std;
int n, i;
string s[maxn];
bool cmp(string s1, string s2)
int main()
/*問題如下:
123321 和 123 兩個數字
123021 和 123 兩組數字
以上兩組顯然需求的排列的順序不同
但若按字典序排列則是相同的
*/
要記住這種巧妙的比較方式~~~ 洛谷P1012 拼數
有n個正整數 n 20 將它們聯接成一排,組成乙個最大的多位整數。例如 n 3時,3個整數13,312,343聯接成的最大整數為 34331213 又如 n 4時,44個整數7,13,4,246聯接成的最大整數為 7424613 輸入輸出格式 輸入格式 第一行,乙個正整數n。第二行,n個正整數。輸出...
洛谷P1012(拼數)
設有 n 個正整數 a1 an a 1 dots a n a1 an 將它們聯接成一排,相鄰數字首尾相接,組成乙個最大的整數 第一行有乙個整數,表示數字個數 n。第二行有 n 個整數,表示給出的 n 個整數 a ia i ai 乙個正整數,表示最大的整數 對於這一題,我剛開始還是想老老實實用int或...
洛谷 P1012 拼數
雖然這只是個簡單的排序,將每個數用字串的形式輸入,從大到小排並比較字典序即可,但是他的cmp函式用到了前幾天思維碾壓題的a b與b a的比較 hhh找題剛好遇到了,你說巧不巧 include using namespace std define int long long define ios io...