问题标题: 酷町堂:2835 函数求次方值

0
0
已解决
蒋智航
蒋智航
高级天翼
高级天翼

2835   函数求次方值

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int m,a[10000],b[10000];
    cin>>m;
    for (int i=0;i<m;i++)
    {
        cin>>a[i];
    }
    for (int i=0;i<m;i++)
    {
        cin>>b[i];
    }
    for (int i=0;i<m;i++)
    {
        cout<<pow(a[i],b[i])<<endl;
    }
    return 0;
} 

普通算法 WA 0

 

蒋智航在2018-08-13 16:13:43追加了内容
#include<bits/stdc++.h>
using namespace std;
int a[10001],b[10001],c[10001];
void change(int a[],int b[])
{
    for (int i=0;i<=b[0];i++)
    {
        a[i]=b[i];
    }
}
void chengfa()
{
    memset(c,0,10001);
    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]--;
}
int main()
{
    int t,n;
    string s;
    cin>>t;
    for (int j=0;j<t;j++)
    {
        cin>>s>>n;
        a[0]=b[0]=s.size();
        for (int i=1;i<=a[0];i++)
        {
            a[i]=s[a[0]-i]-'0';   
        }
        for (int i=1;i<=b[0];i++)
            b[i]=s[b[0]-i]-'0';
        for (int i=1;i<n;i++)
        {
            chengfa();
            change(a,c);
        }
        for (int i=c[0];i>=1;i--)
            cout<<c[i];
            cout<<endl;
    }
    return 0;
} 

高精算法 WA 30

蒋智航在2018-08-13 16:18:42追加了内容

给除了#7,#8,#9以外测试点的,我给他40豆。(因为要30酷町币嘛,币比豆珍贵,就40豆了。若嫌少,发完测试点后单独谈)

 


1
已采纳
袁翊凡
袁翊凡
新手光能
新手光能

这题你想复杂了,思路其实很简单的;

核心代码如下:

int s=1;
    for(int i=1;i<=m;i++)
    {
        s*=n;
    }求次方

最后再在主函数内调用一下这个函数就行了

 

0
我要回答