#include<iostream>#include<algorithm>#include <cstdio>#include <string>#include <cstring>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; } }}#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<algorithm> using namespace std; #define N 10010 char s[N]; int a[N]; int change(string s) { int len = s.length(); int sum = 0; for(int i = len - 1, j = 0; i >= 0; --i, ++j) sum += (int)(s[i] - '0') * pow(10.0, j); return sum; } int main() { int len, num; string ans; while(scanf("%s", s) != EOF) { len = strlen(s); num = 0; ans = ""; for(int i = 0; i < len; ++i) { if(s[i] != '5') { ans += s[i]; if(i == len - 1) //不是5结尾的 a[num++] = change(ans); } else if(s[i] == '5' && s[i - 1] != '5' && i != 0) //是5且不能一堆5且5不能为第一个 { a[num++] = change(ans); ans = ""; } } sort(a, a + num); for(int i = 0; i < num - 1; ++i) PRintf("%d ", a[i]); printf("%d/n", a[num - 1]); } return 0; }
新闻热点
疑难解答