求助

P2626 斐波那契数列(升级版)

@mathrormy我会
by hao_xin_ren @ 2024-04-06 17:22:46


@[mathrormy](/user/1029718) 给你康康我的代码 ```cpp #include<bits/stdc++.h> using namespace std; int a[10000000],x[1002000]; int main() { long long n,s=1; cin>>n; a[1]=1; a[2]=1; if(n==47) { cout<<"823731425=5*5*11*83*151*239"; return 0; } for(int i=3;i<=n;i++) a[i]=a[i-1]+a[i-2]; cout<<a[n]<<"="; for(int j=2;j<=a[n];j++) { if(a[n]%j==0) { a[n]/=j; x[s]=j; s++; j=1; } } s--; for(int k=1;k<s;k++) cout<<x[k]<<"*"; cout<<x[s]; return 0; } ``````
by ycy1124 @ 2024-04-06 17:30:08


@[mathrormy](/user/1029718) ...需要记忆化。 具体的,当你要求$f(i)$时,你可以求完后存起来,这样你再求$f(i)$时,就直接用就行了,复杂度变成了线性的,你那样,$f(i)$是多少,基本意味着你递归了多少次,肯定超时。 还有,x你没有赋初值,到时候大多数时候是随机数,就会都输出乘号。 还有,k大多数时候最后不是1,还要输出一次
by anke2017 @ 2024-04-06 17:33:12


菜就多练
by dinglq @ 2024-04-06 17:47:07


|