HDU 1106 排序

一直注意这道题很久了。选拔赛之前就看见这道题一直做不出来。拖到现在终于做了。

1.可以用很多C函数来解决很多问题,非常方便。写完这道题觉得自己写的函数才是王道。strchr(char*a,char ch)

2.唯一一个要注意考虑的地方就是连续几个5

 1 #include <stdio.h>
 2 #include <string>
 3 #include <string.h>
 4 #include <iostream>
 5 #include <algorithm>
 6 using namespace std;
 7 
 8 int cal(string a)
 9 {
10     int ten=1 , res = 0;
11     for(int i=a.length()-1;i>=0;i--)
12     {
13         res += ten * (a[i]-'0');
14         ten *= 10;
15     }
16     return res;
17 }
18 
19 int main()
20 {
21     int num[1010];
22     char str[1010];
23     while(cin>>str)
24     {
25         int cur =0;
26         int cnt =0;
27         string snum = "";
28         while(cnt < strlen(str))
29         {
30             if(str[cnt] == '5')
31             {
32                 //cout<<snum<<'    ';
33                 if(snum!="")
34                 {
35                     num[++cur] = cal(snum);
36                     snum = "";
37                 }
38             }
39             else snum += str[cnt];
40             cnt++;
41         }
42         if(snum!="") num[++cur] = cal(snum);//,cout<<snum<<endl;
43         sort(num+1,num+cur+1);
44         for(int i=1;i<cur;i++)
45         {
46             cout<<num[i]<<' ';
47         }
48         cout<<num[cur]<<endl;
49     }
50     return 0;
51 }
52 // 000235664589300025000341500
View Code
原文地址:https://www.cnblogs.com/cton/p/3437373.html