HDU-ACM课堂作业 我要最小整数
思路:遍历数字中每个元素,当前元素大于右边的元素时将其删去。每当完成一个删除操作时将 从头开始遍历。
#include <iostream> #include <stack> #include <cstdlib> #include <cstring> #include<algorithm> #include<math.h> #include<queue> using namespace std; int main() { while(1) { char str[31]; scanf("%s", str); int de; cin>>de; int len=0; for(int i=0;str[i];i++) len++; if(de==len) { cout<<0<<endl; continue; } int i=0; //共删除de个元素 while(de) { //左边元素大于右边 if(str[i]>str[i+1]) { //将所有元素往前一位 for(int k=i;k<len;k++) { str[k]=str[k+1]; } len--; i=0; de--; } //如果正常就进入下一个元素 else { i++; } } for(int i=0;i<len;i++) cout<<str[i]; cout<<endl; } }