lucy2012 @ 2024-04-05 22:16:15
#include<bits/stdc++.h>
using namespace std;
int n,len=1,a[6000][6000];
void f(int n){
for(int i=1;i<=len;i++)
a[n][i]=a[n-1][i]+a[n-2][i];
for(int i=1;i<=len;i++){
if(a[n][i]>=10){
a[n][i+1]=a[n][i]/10;
a[n][i]%=10;
if(!a[n][len+1])
len++;
}
}
}
int main(){
cin>>n;
a[1][1]=1;
a[2][1]=2;
for(int i=3;i<=n;i++)
f(i);
for(int i=len;i>=1;i--)
cout<<a[n][i];
return 0;
}
by 枫原千叶 @ 2024-04-05 22:19:31
斐波那契让你eat了吗
by 枫原千叶 @ 2024-04-05 22:20:13
为什么要用这么奇怪的方式写斐波那契?
by 枫原千叶 @ 2024-04-05 22:21:20
高精度不好吗qwq
by rhn7 @ 2024-04-05 22:31:27
a[n][i+1]=a[n][i]/10;
改成a[n][i+1]+=a[n][i]/10;
by Dream_Creator @ 2024-04-05 22:32:21
@lucy2012
#include<bits/stdc++.h>
using namespace std;
int n,len=1,a[6000][6000];
void f(int n){
for(int i=1;i<=len;i++)
a[n][i]=a[n-1][i]+a[n-2][i];
for(int i=1;i<=len;i++){
if(a[n][i]>=10){
a[n][i+1]+=a[n][i]/10;
a[n][i]%=10;
if(a[n][len+1])
len++;
}
}
}
int main(){
cin>>n;
a[1][1]=1;
a[2][1]=2;
for(int i=3;i<=n;i++)
f(i);
for(int i=len;i>=1;i--)
cout<<a[n][i];
return 0;
}
by lucy2012 @ 2024-04-06 08:50:35
@rhn7 @Dream_Creator 额,谢谢啦