标签:
请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,
比如当n=92081346718538,m=10时,则新的最大数是9888
2 92081346718538 10 1008908 5
9888 98
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 using namespace std; 5 char str[110]; 6 int main() 7 { 8 int t, n; 9 scanf("%d", &t); 10 while(t--) 11 { 12 int i, m, len, head = 0; 13 scanf("%s %d", str, &n); 14 len = strlen(str); m = len - n; 15 while(m--) //取len - n位数, 16 { 17 char max = ‘*‘; int temp; 18 for(i = head; i<=n; i++) //取出最大的最高位上的数; 19 { 20 if(str[i] > max) 21 { 22 temp = i; 23 max = str[i]; 24 } 25 } 26 n++; head++; printf("%c", str[temp]); 27 for(i=0; i<=temp; i++) //最高位前清零; 28 str[i]=‘*‘; 29 } 30 printf("\n"); 31 32 } 33 return 0; 34 }
标签:
原文地址:http://www.cnblogs.com/fengshun/p/4691946.html