问题标题: 酷町堂:我的代码肿么了,大佬们帮忙看一看

0
0
已解决
张舒斌
张舒斌
中级光能
中级光能

#include<bits/stdc++.h>
using namespace std;
int a[10000],b[10000],c[10000000];
void chengfa()
{
    memset(c,0,sizeof(c));
    c[0]=a[0]+b[0];
    int jw;
    for(int i=1;i<=a[0];i++)
    {
        jw=0;
        for(int j=1;j<=b[0];j++)
        {
            c[i+j-1]+=a[i]*b[j]+jw;
            jw=c[i+j-1]/10;
            c[i+j-1]%=10;
        }
        c[i+b[0]]+=jw;
    }
    while(c[c[0]]==0&&c[0]!=1)    c[0]--;
}
void change(int a[],int b[])
{
    for(int i=0;i<b[0];i++)
    {
        a[i]=b[i];
    }
}
int main()
{
    int k,n;
    string r;
    cin>>k;
    for(int i=1;i<=k;i++)
    {
        cin>>r>>n;
        a[0]=b[0]=r.size();
        for(int j=1;j<=a[0];j++)
        {
            a[i]=r[a[0]-i]-48;
        }
        for(int j=1;j<=b[0];j++)
        {
            b[i]=r[b[0]-i]-48;
        }
        for(int j=1;j<=n-1;j++)
        {
            chengfa();
            change(a,c);
        }
        for(int j=c[0];j>=1;j--)
        {
            cout<<c[i];
        }
        cout<<endl;
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
    }
    return 0;
}
 

张舒斌在2018-08-11 12:29:04追加了内容

题号2754


0
已采纳
宋梓涵
宋梓涵
新手光能
新手光能

用python3写,不需要用高精,直接求即可

问陆麟瑞!!!

@陆麟瑞!!!

0
屠景瑞
屠景瑞
新手光能
新手光能

你试试把c[10000000].换成c[10000].

再把所有memset的sizeof(b)

换成,10000

屠景瑞在2018-08-11 22:35:32追加了内容

 

change函数 应是int<=b[0].

0
0
张舒斌
张舒斌
中级光能
中级光能

大佬们求解!!!!!!

@陆麟瑞 @郑怡翔 @刘斐 @毕小曼 @屠景瑞 

我要回答