解题思路:循环+数组
注意事项:因为数据太大,递归会超时,所以采用数组记录已经计算过的数值
参考代码:
#include<iostream>
using namespace std;
int f(int n){
if(n==1)return 1;
if(n==2)return 2;
return (2*f(n-1)+f(n-2))%32767;
}
int main(){
int N,n;
cin>>N;
while(N--){
cin>>n;
cout<<f(n)<<endl;
}
return 0;
}
#include<iostream>
using namespace std;
int main(){
int a[1000005]={0,1,2};
int N,n;
for(int i=3;i<1000005;i++){
a[i]=(2*a[i-1]+a[i-2])%32767;
}
cin>>N;
while(N--){
cin>>n;
cout<<a[n]<<endl;
}
return 0;
}
0.0分
1 人评分
数列排序 (C语言代码)浏览:858 |
C语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:619 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:543 |
人见人爱A+B (C语言代码)浏览:664 |
字符串问题 (C语言代码)浏览:1635 |
A+B for Input-Output Practice (V) (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:568 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:818 |
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:1067 |
完数 (C语言代码)浏览:757 |