3_14 @ 2024-03-05 20:57:54
我的代码:(为什么没有输出,高精函数(应该)没有问题)
#include<bits/stdc++.h>
using namespace std;
const int MAX=1111;
string add(string A,string B){
string ANS="";
int len1=A.size(),len2=B.size(),n1[MAX]={0},n2[MAX]={0},ans[MAX]={0};
for(int i=0;i<len1;i++)n1[len1-1-i]=A[i]-'0';
for(int i=0;i<len2;i++)n2[len2-1-i]=B[i]-'0';
int k=0,mlen=max(len1,len2);
for(int i=0;i<mlen;i++){
ans[i]=k+n1[i]+n2[i];
if(ans[i]>9){
ANS=char(ans[i]%10+'0')+ANS;
k=1;
}else{
k=0;
}
}
if(k){
ANS="1"+ANS;
}
return ANS;
}
int n;
string a="1",b="1",c;
int main(){
cin>>n;
for(int i=0;i<n;i++){
c=add(a,b);
a=b;
b=c;
}
cout<<c;
return 0;
}
by fish_love_cat @ 2024-03-05 21:15:28
乐,高精度函数错的,主函数也是错的
by fish_love_cat @ 2024-03-05 21:18:07
@3_14 主函数应该是这样的↓
int n;
string a="1",b="2",c;
int main(){
cin>>n;
if(n==1)cout<<1;
else if(n==2)cout<<2;
else{
for(int i=2;i<n;i++){
c=add(a,b);
a=b;
b=c;
}
cout<<c;}
return 0;
}
by fish_love_cat @ 2024-03-05 21:18:46
高精加你去照着题解慢慢改吧
by 3_14 @ 2024-03-05 21:58:25
呃