啊,等会。我自己似乎看出错误了。
by AFwhcing @ 2020-10-16 22:14:46
~~呸~~,还是~~TM~~0分!
(恕我用词不当,但是实在CQ。)
by AFwhcing @ 2020-10-16 22:29:02
好家伙,稍微改了一下竟然
# 听取WA声一片。。。
## 青WA代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
long long fibonacci(long long n){
if(n<3) return 1;
return fibonacci(n-1)+fibonacci(n-2);
}
int main(){
long long n;
n=fibonacci(n)%2147483647;
printf("%d=",n);
for(int i=2;i*i<=n;++i){
while(n%i==0){
printf("%d",i);
n/=i;
if(n>i) printf("*");
}
}
return 0;
}
```
哈,我口吐锦绣)*$&(&*#({@}$)$%)@{}$($&@^&$^@&#^$()@%!
by AFwhcing @ 2020-10-16 22:42:32
可以用数组存一下,节约时间
```cpp
if(n>i) printf("*");
```
假如n=4,会输出22,中间没空格
```cpp
for(int i=2;i*i<=n;++i){
```
n是质数的话怎么办
AC代码
```cpp
#include<iostream>
#include<cmath>
using namespace std;
int m = pow(2,31);
int f[50] = {0,1,1,2,3,5};
int fbi(int n){
if(f[n]) return f[n];
f[n] = (fbi(n-1)+fbi(n-2))%m;
return f[n];
}
int main(){
int x;
cin >> x;
x = fbi(x);
cout << x << "=";
bool flag = 1;
for(int i = 2; i <= x; i++){
while(x%i==0){
if(flag==1){
cout << i;
flag = 0;
} else {
cout << "*" << i;
}
x/=i;
}
}
return 0;
}
```
by yyz1005 @ 2020-10-21 19:18:53
2147483647是2^31-1.....
by yyz1005 @ 2020-10-21 19:29:00
@[蒟蒻de小王](/user/373959) 2的31次方是`2147483648`,且建议使用记忆化
by qwq___qaq @ 2021-08-19 09:01:42