XDYZ_N @ 2024-05-08 19:48:30
我觉得递推式没问题呀 求助大佬
#include<bits/stdc++.h>
using namespace std;
int main()
{
int f[5005] = {0,1,2};
int n;
cin>>n;
if(n == 0)
{
cout<<0;
return 0;
}
if(n!=1&&n!=2)
{
for(int i = 3;i<=n;i++)
{
f[i] = f[i-1]+f[i-2];
}
}
cout<<f[n];
return 0;
}
by _czx6666_ @ 2024-05-08 19:50:12
得高精~~~ @XDYZ_N
by _czx6666_ @ 2024-05-08 19:50:47
by _czx6666_ @ 2024-05-08 19:51:01
求关
by XDYZ_N @ 2024-05-08 19:51:07
@czx6666 哦 我还以为直接算就行 谢谢大佬
by 3_14 @ 2024-05-08 19:59:21
@XDYZ_N 我的代码
就是一个斐波拉契
#include<bits/stdc++.h>
using namespace std;
string add(string a,string b){
string ans;
int lena=a.size(),lenb=b.size();
if(lena<lenb)
for(int i=0;i<lenb-lena;i++)a='0'+a;
else
for(int i=0;i<lena-lenb;i++)b='0'+b;
lena=a.size();
int k=0,u=0;
for(int i=lena-1;i>=0;i--){
u=a[i]+b[i]+k-'0'-'0';
k=u/10;
u%=10;
ans=to_string(u)+ans;
}
if(k){
ans=to_string(k)+ans;
}
return ans;
}
string to(int n){
if(n<=1)
return "1";
string a="1",b="1",c;
for(int i=1;i<n;i++){
c=add(a,b);
a=b;
b=c;
}
return c;
}
int main(){
int n;
cin>>n;
cout<<to(n)<<'\n';
return 0;
}
by XDYZ_N @ 2024-05-08 20:06:43
66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666