解题思路:
注意事项:
参考代码:
/*给定一个正整数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语言代码)浏览:1463 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:574 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:732 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:451 |
【计算两点间的距离】 (C语言代码)浏览:883 |
C语言程序设计教程(第三版)课后习题1.6 (C++代码)浏览:891 |
WU-复数求和 (C++代码)浏览:2010 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:531 |
1908题解浏览:640 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:556 |