laolin2333


私信TA

用户名:laolin2333

访问量:8070

签 名:

前路漫漫

等  级
排  名 2179
经  验 2238
参赛次数 3
文章发表 6
年  龄 0
在职情况 学生
学  校 华师大
专  业 挖掘机

  自我简介:

解题思路:

找到规律是这道题目的关键。当k=3时,数列为 1     3 4     9 10 12 13   27 28 30 31 36 37 40 ...

                           3的0次方 3的1次   3的2次      3的3次

可以想到,3的i次方(i={0,1,2...})后面的数为分别与前面的数的和。如3的2次方后的3个数(3次方前),分别为 

9+1 9+3 9+4  3的3次方后的数为 27+1 27+3 27+4 27+9 27+10 27+12 27+13 依次类推即可。


注意事项:

不要用pow()函数!



参考代码:

#include <stdio.h>

int fun(int b,int d)

{

    int i=1,p=1;

    for(;i<=d;i++)

    {

        p*=b;

    }

    return p;

}

int main()

{

    int i,j,c,n,k,a[1005]={0},count=1;

    scanf("%d %d",&k,&n);

    a[count++]=1;

    a[count++]=k;

    a[count++]=k+1;

    for(i=2;count<=n;i++)

    {

        a[count++]=fun(k,i);

        c=count-1;

        for(j=1;j<c&&count<=n;j++)

        {

            a[count++]=a[j]+a[c];

        }

    }

    printf("%d\n",a[n]);

    return 0;

}


 

0.0分

7 人评分

  评论区

请问为什么不能使用pow函数呢
2021-03-01 11:16:26
果然不能用pow函数,楼主太太强了
2020-12-19 13:29:30
太聪明了
2020-12-19 12:57:19
这个缩进好可恶,我打的好好的,一出来就这样了。。。。
2017-11-27 21:28:13
  • «
  • 1
  • »