二猛


私信TA

用户名:ermeng

访问量:3050

签 名:

等  级
排  名 13410
经  验 890
参赛次数 0
文章发表 4
年  龄 20
在职情况 学生
学  校 NUDT
专  业 物理

  自我简介:

TA的其他文章

解题思路:第2的m次方项为k的m次方(m=0 1 2...)   其余项为s[n+j]=s[n]+s[j] (1 <= j <= n-1)

注意事项:

参考代码:

#include<iostream>

using namespace std;


int pow(int m,int n);

void tianduan(int &i, int s[]);



int main()

{

    int k,N;

    cin>>k>>N;

    int s[1001]= {0};


    s[0]=0;

    s[1]=1;

    int i=2,m=1;

    while(i<=1000)

    {

        if(i==pow(2,m))

        {

            s[i]=pow(k,m);

            m++;

            i++;

        }

        else

        {

            tianduan(i,s);

        }

    }

    cout<<s[N]<<endl;

    return 0;

}


int pow(int m,int n)

{

    int q=1;

    for(int j=0; j<n; j++)

    {

        q=q*m;

    }

    return q;

}


void tianduan(int &i, int s[])

{

    int n=i;

    for(int j=1; j<n-1; j++)

    {

        s[i]=s[j]+s[n-1];

        i++;

        if(i>1000)

        {

            break;

        }

    }

}


 

0.0分

0 人评分

  评论区