亚洲微拍福利视频一区:(c++编程)键盘输入一个高精度的正整数M,去掉其中任意S个数字后使剩下的数最小

来源:百度文库 编辑:高考问答 时间:2024/05/04 19:55:49
例如:M=2837951, S=4
输出结果为:
237951
23751
2351
231
在比如53256789009432432,S=9
输出结果为:
3256789009432432
256789009432432
25678009432432
2567009432432
256009432432
25009432432
2009432432

int xmin(int s,int m,int counter)
{
if(counter==0)
return 0;
int dit[20];//store digits of m;
int i=0;
while(m!=0)//得到各个位上的数值
{
dit[i]=m%10;
m=(m-dit[i])/10;
i++;
}
int mindigit=0;
for(int x=i-1;x>i-s-1;x--)//找到前s为中最大的
{
if(mindigit<dit[y])
mindigit=dit[y];
}
for(int x=i-1;x>i-s-1;x--)//从中删掉最大位并得到新的m
{
if(dit[x]!=mindigit)
m=m*10+dit[x];
}
out《m;//输出新m
return xmin(m,s,s-1)//递归调用该过程
}