练习系统实验三最小数(删数)

    xiaoxiao2021-03-25  68

    当前编程题:实验三 大数、枚举问题(16级)---最小数

    7. 问题描述 将给定的整数 M ,从中去掉 K 位后使所得数最小。   例:整数: 1342426735  去掉 4   结果最小为 122635 输入形式 一行,第一个数为十进制表示的整数 M M 位长最多为 20 ;第二个数为整数 K 输出形式 去掉 K 位后的最小值。 样例输入 1342426735 4   样例输出 122635 #include<iostream> #include<string> using namespace std; int main() {     string n;     int s,i,x,l,m;     while(cin>>n>>s)     {          i=-1,m=0,x=0;          l=n.length();           while(x<s&&m==0)           {               i++;               if(n[i]>n[i+1])//出现递减,删除递减的首数字                 {                    n=n.erase(i,1);                    x++;// x统计删除数字的个数                     i=-1;//从头开始查递减区间                 }                if(i==l-x-2&&x<s)               m=1;//已经无递减区间,m=1脱离循环            }        cout<<n.substr(0,l-s+x)<<endl;//只打印剩下的左边l-(s-x)个数字      }      return 0;    }
    转载请注明原文地址: https://ju.6miu.com/read-34041.html

    最新回复(0)