超时了///。。。。。
查看原帖
超时了///。。。。。
346857
Jobstic楼主2020/10/10 00:00
#include<cstdio>
using namespace std;
int jiecheng(int i,int *p,int s)
{
    int a = 1,b,jinwei;
    jinwei = 0;
    b = 0;
    while(b<=s)
    {
        *(p+b) *=1;
        if(b&&jinwei){
            *(p+b) +=jinwei;
            jinwei = 0;
        }
        if(*(p+b)>9){
            jinwei = *(p+b)/10;
            *(p+b) = *(p+b)%10;
        }
        if(*(p+b+1)==0&&jinwei!=0){
            if(b+1 == s){
                s = b+1;
            }
        }
        b++;
    }
    return s;
}
void qiuhe(int x,int *p,int *q){
    int i =1,j,ns = 0,jinwei,os = 0,t;
    while(x>=1){
        j = 0;
        jinwei = 0;
        os = jiecheng(i,p,os);
        while(j<ns||j<os){
            *(q+j)+=*(p+j);
            if(j&&jinwei){
                *(q+j)+=jinwei;
                jinwei = 0;
            }
            if(*(q+j)>9){
                jinwei = *(q+j)/10;
                *(q+j) = *(q+j)%10;
            }
            if(*(q+j+1)==0&&jinwei){
                if(j+1>ns){
                    ns = j+1;
                    t = 3;
                }
            }
            if(*(q+j+1)==0&&os>ns){
                if(j+1>ns){
                    if(t!=3){
                        for(t = os;t>ns;t--){
                            *(q+t) = *(p+t);
                        }
                        ns = os;
                        break;
                    }

                } 
                t = 2;
            }
            j++;
        }
        i++;
    }
    for(t = ns;t>=0;t--){
        printf("%d",*(q+t));
    }
}
int main(){
    int a[30000] = {1},b,c[30000] = {0};
    scanf("%d",&b);
    qiuhe(b,a,c);
    return 0;
}
2020/10/10 00:00
加载中...