解题思路:首先题目给出了数,并要我们求第10项开外的数,所以我们先把前四项附上值,也就是0次幂,1次幂,1次幂+1次幂,2次幂;
在设置几个变量i,j,t,一个数组num[1000],其中i是要求的数组的值,j是从数组下标0开始要加上的数,t是定位数字k的整次幂;
当j=t是,再把j变为0,这时,我们要算的是k的整次幂,再把t定位到此时的i;另外一种情况就是照常的加数即可。
即当j=t时,要j=0;num[i]=num[t]*k;t=i;i++;当其余情况,num[i]=num[t]+num[j];j++;i++;这样就好啦。
注意事项:
参考代码:
#include<stdio.h>
int main(){
int k,n;
scanf("%d %d",&k,&n);
int num[1000];
num[0]=1;num[1]=k;num[2]=num[0]+num[1];num[3]=k*k;
int i,j,t;
i=4;j=0;t=3;
while(i<1000){
if(j==t){
j=0;
num[i]=num[t]*k;
t=i;
i++;
}else{
num[i]=num[t]+num[j];
j++;
i++;
}
}
printf("%d\n",num[n-1]);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复