解题思路:
注意事项:
参考代码:
/*给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,
例如,当k=3时,这个序列是:
1,3,4,9,10,12,13,…
观察数列,知3的i次方(i={0,1,2...})后面的数(直到3的i+1次方)为该项分别与前面的数的和。如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 依次类推即发现规律。
例如,对于k=3,N=100,正确答案应该是981。*/
#include<stdio.h>
int pow(int k,int x); //求k的x次幂
int arr[1000]; //不得超过1000项
/************************************************************/
int main ()
{
int k; //底数
int n; //输出第n个数
int num=0; //数列的项数
int ki; //辅助变量
int x=0; //k的x次幂,每for循环一次加1
scanf("%d %d",&k,&n);
arr[num++]=1; //初始化第一个数
while (num<n+2) //出现所所需项数就退出循环
{
ki=num;
//按规律增加
for(int i=0;i<ki-1;i++) //此处实现当前幂次数循环加前面每一项
arr[num++]=arr[ki-1]+arr[i];
x++;
arr[num++]=pow(k,x);
}
printf ("%d",arr[n-1]);
return 0;
}
/************************************************************/
int pow(int k,int x)
{
int sum=1;
for (int i=0;i<x;i++)
{
sum*=k;
}
return sum;
}
0.0分
13 人评分
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:643 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:746 |
哥德巴赫曾猜测 (C语言代码)浏览:1148 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:593 |
最小公倍数 (C语言代码)浏览:1105 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:699 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:913 |
幸运数 (C++代码)浏览:1309 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:866 |
字符逆序 (C语言代码)浏览:506 |