hdu 1105 排序

有3种数据要注意

1,开头是5;

2,结尾时5;

3,连续的5在一起;

用Pow处理10的次方问题在交题的时候会编译错,不知道为什么唉,只好手写函数咯,

#include
#include
#include
using namespace std;
string a;
int b[2000];
int f(int x)
{
	int i;
	if(x==0){return 1;}
	else
	{
		int re=1;
		for(i=0;i>a)
    {
    	memset(b,0,sizeof(b));
    	int i,j,t=0;
    	int m=0;
    	if(a[0]=='5'){m=1;}//对开头是5的数据特殊处理 
    	for(i=a.size()-1;i>=0;i--)
    	{
    		if(a[i]!='5')
    		{
    			for(j=i;j>=0;j--)
    			{
    				if(a[j]=='5')
    				{
    					t++;break;
    				}
    				b[t]+=(a[j]-48)*f(i-j);
    				a[j]='5';
    			}
    		}
    	}
    	if(m){t--;}
    	sort(b,b+t+1);
    	cout<


 

你可能感兴趣的:(hdu)