wyp20130701 @ 2024-07-22 12:17:39
#include <iostream>
using namespace std;
short f[5005][5500];
inline void jia(int p1,int p2,int p3)
{
short x = 0,len = 0;
for (int i = 1;i <= 5499;i++)
{
f[p3][i] = f[p1][i] + f[p2][i] + x;
x = f[p3][i] / 10;
f[p3][i] %= 10;
len++;
}
f[p3][len] = x;
return ;
}
inline void print(int n,int pos)
{
for (int i = 1;i <= pos;i++)
{
cout << f[n][i];
}
return ;
}
int main()
{
f[1][1] = 1;
f[2][1] = 2;
int n;
cin >> n;
for (int i = 3;i <= n;i++)
{
jia(i - 1,i - 2,i);
}
short pos = 5499;
while (f[n][pos] == 0)
{
pos--;
}
print(n,pos);
return 0;
}//f[x][y]表示数列第x项高精度第y位。
by lyc_qwq @ 2024-07-22 12:39:40
这是我的代码(才不会告诉你我看不懂你的代码)
#include<bits/stdc++.h>
using namespace std;
int a[5100],b[5100],c[5100];
int main(){
int n;
cin>>n;
int la=1,lb=1,lc=1;
a[1]=1;
b[1]=2;
if(n==1){
cout<<1;
return 0;
}
if(n==2){
cout<<2;
return 0;
}
for(int i=3;i<=n;i++){
int x=0;
for(int j=1;j<=lc;j++){
c[j]=a[j]+b[j]+x;
x=c[j]/10;
c[j]%=10;
}
if(x>0)
c[++lc]=x;
la=lb;
for(int j=1;j<=la;j++)
a[j]=b[j];
lb=lc;
for(int j=1;j<=lb;j++)
b[j]=c[j];
}
for(int i=lc;i>=1;i--)
cout<<c[i];
return 0;
}
by _buzhidao_ @ 2024-07-22 12:55:37
@wyp20130701 这题是斐波那契数列,不用DP。
by poor_OIer @ 2024-07-23 16:41:36
@wyp20130701 一维数组不就够了吗,你在干什么?
#include<bits/stdc++.h>
using namespace std;
int n;
string f[5005];
string add(string a,string b)
{
string c="";
int len1=a.size(),len2=b.size();
if(len1<len2)
for(int i=1;i<=len2-len1;i++)
a="0"+a;
if(len1>len2)
for(int i=1;i<=len1-len2;i++)
b="0"+b;
len1=a.size();
int temp=0,jw=0;
for(int i=len1-1;i>=0;i--)
{
temp=a[i]-'0'+b[i]-'0'+jw;
jw=temp/10;
temp%=10;
c+=(char)(temp+'0');
}
if(jw)
c+=(char)(jw+'0');
reverse(c.begin(),c.end());
return c;
}
int main()
{
cin>>n;
f[1]="1";
f[2]="2";
for(int i=3;i<=n;i++)
{
f[i]=add(f[i-1],f[i-2]);
}
cout<<f[n];
return 0;
}
by yi105011 @ 2024-08-06 15:44:33
不是,你输出的时候输反了。
by yi105011 @ 2024-08-06 15:47:26
inline void print中的
for (int i = 1;i <= pos;i++)
{
cout << f[n][i];
}
应改为
for (int i = pos;i >= 1;i++)
{
cout << f[n][i];
}
就AC啦
by yi105011 @ 2024-08-06 15:49:02
记录详情
by yi105011 @ 2024-08-06 15:49:23
另:求关
by yi105011 @ 2024-08-06 15:50:43
对不起,刚刚代码中的i++得改为i--
by Allen20 @ 2024-08-17 11:08:41
我也20,哈哈
by Allen20 @ 2024-08-17 11:09:19
@wyp20130701