高精度!斐波那契数列!还是20分!!
查看原帖
高精度!斐波那契数列!还是20分!!
612152
lijuncheng_1207楼主2023/6/25 19:08
#include<bits/stdc++.h>
using namespace std;
vector<int> addition(vector<int> &a,vector<int> &b){
    vector<int> c;
    int la=a.size(),lb=b.size(),ans=0;
    if(la<lb)
        return addition(b,a);
    for(int i=0;i<=la;i++){
        ans+=a[i];
        if(i<lb) ans+=b[i];
        c.push_back(ans%10);
        ans/=10;
    }
    return c;
}
int main(){
	vector<int> a,b,c;
	int n;
	cin>>n;
	a.push_back(1);
	b.push_back(2); 
	if(n<=2){
		cout<<n;
		return 0;
	}
	for(int i = 3; i <= n; i++){
		c=addition(a,b);
		a=b;
		b=c;
	}
   int cl=c.size(),pos;
   for(int i=cl-1;i>=0;i--){
      if(c[i]>0){
         pos=i;
         for(int i=pos;i>=0;i--)
            cout<<c[i];
         return 0;
      }
      break;
   }
   
	return 0;
}

多多指教

2023/6/25 19:08
加载中...