#include<iostream> #include<string> using std::string; using namespace std; const int MAX_NUM=1000; void merge(long num[],int n); int main() { string str; while(cin>>str) { int len=str.size(); long num[MAX_NUM]; int i=0,j,temp; for(j=0;j<MAX_NUM;j++) num[j]=0; for(j=0;j<len;) { temp=str[j]-'0'; if(temp!=5) { num[i]=num[i]*10+temp; j++; } else { if(j) i++; while(str[j]=='5') j++; if(j>len-1) i--; } } merge(num,i+1); cout<<num[0]; for(j=1;j<=i;j++) cout<<" "<<num[j]; cout<<endl; } return 0; } void merge(long num[],int n) { long temp; int k; for(int i=0;i<n;i++) { k=i; temp=num[i]; for(int j=i;j<n;j++) if(num[k]>num[j]) k=j; if(k!=i) { num[i]=num[k]; num[k]=temp; } } }
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数
最新推荐文章于 2020-11-27 15:08:05 发布