時間限制:
1000 ms | 記憶體限制:
65535 kb
難度: 2
描述 請在整數 n 中刪除m個數字, 使得餘下的數字按原次序組成的新數最大,
比如當n=92081346718538,m=10時,則新的最大數是9888
輸入
第一行輸入乙個正整數t,表示有t組測試資料
每組測試資料佔一行,每行有兩個數n,m(n可能是乙個很大的整數,但其位數不超過100位,並且保證資料首位非0,m小於整數n的位數)
輸出每組測試資料的輸出佔一行,輸出剩餘的數字按原次序組成的最大新數
樣例輸入
292081346718538 10
1008908 5
樣例輸出
988898
**第六屆itat複賽b卷2題改編
上傳者acm_趙銘浩
想法:首先我們要真確理解題意:請在整數 n 中刪除m個數字, 使得餘下的數字按原次序組成的新數最大,
刪除這m個數,不是意味從位數上為0開始刪除m個位數再輸出就行。例如:8890刪除一位數,是890而不是889.
可以知道新組成的這個數的位數=n的位數—m。(注第一位為數值最高位)
那麼我們首先要找到組成這個最大數的第一位的數值,那則是從第一位到第m位中最大的,(假設最大為第n位)
組成這個最大數的第二位的數值,則是從第n位到第m+1位中最大的。
核心**:
while(mflag;i--)
}m++;
flag=count;
printf("%d",ws-'0');
}**:
#include
#include
char a[110];
int main()
}m++;
flag=count;
printf("%d",ws-'0');
}printf("\n");
}return 0;
}
南陽448 尋找最大數
時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 請在整數 n 中刪除m個數字,使得餘下的數字按原次序組成的新數最大,比如當n 92081346718538,m 10時,則新的最大數是9888 輸入 第一行輸入乙個正整數t,表示有t組測試資料 每組測試資料佔一行,每行有兩個數n...
南陽448 尋找最大數
描述 請在整數 n 中刪除m個數字,使得餘下的數字按原次序組成的新數最大,比如當n 92081346718538,m 10時,則新的最大數是9888 輸入 第一行輸入乙個正整數t,表示有t組測試資料 每組測試資料佔一行,每行有兩個數n,m n可能是乙個很大的整數,但其位數不超過100位,並且保證資料...
南陽題目448 尋找最大數
時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 請在整數 n 中刪除m個數字,使得餘下的數字按原次序組成的新數最大,比如當n 92081346718538,m 10時,則新的最大數是9888 輸入 第一行輸入乙個正整數t,表示有t組測試資料 每組測試資料佔一行,每行有兩個數n...