高精度整数去位去最小问题 |
Time Limit: 1 Seconds Memory Limit: 32768 K Total Submit:319 Accepted:85 |
Description 键盘输入一个高精度的正整数N,去掉其中任意M个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和M寻找一种方案使得剩下的数字组成的新数最小。输出组成的新的正整数。(不超过240位) Input 本题有多组测试数据,每组测试数据占一行。 Output 新的正整数,每组数据的输出占一行。不要多余的空白. Sample Input 456547 1 456547 2 456547 3 7773359 2 103 1
Sample Output 45547 4547 447 73359 03 |
Source: #include<iostream.h> char a[240]; void out(int b) { while(a[b]!='/0') { a[b]=a[b+1]; b++; } } int main() { int x,i,j,k; while(cin>>a>>x) { while(x--) { i=0;j=1;k=1; while(1) { if(a[i]>a[j]) { k=i; break; } else if(a[i]<a[j]) { i=j; j++; k=i; } else { k=++i; j++; } } out(k); } if(a[0]=='/0') cout<<"0"<<endl; else cout<<a<<endl; } return 0; }
|