求问
  • 板块灌水区
  • 楼主ybbhc
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/4 21:39
  • 上次更新2024/11/4 22:56:58
查看原帖
求问
1495339
ybbhc楼主2024/11/4 21:39

高精度求斐波那契数列出了亿点问题

#include<algorithm>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstdio>
#include<climits>
#include<cstdlib>
#include<cstring>
#include<ctype.h>
#include<iomanip>
#include<iostream>
#include<limits.h>
#include<math.h>
#include<queue>
#include<stack>
#include<string>    
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<vector>
using namespace std;
int ans[10000],n,m,a[10000],b[10000],flag=0;
int main(){
    cin>>n;
    a[0]=1;
    b[0]=1;
    for(int i=1;i<=n;i++){
        for(int j=0;j<max(sizeof(a)/4,sizeof(b)/4);j++){
            ans[j]=a[j]+b[j];
            while(ans[j]>=10){
                ans[j]-=10;
                ans[j+1]++;
            }
        }
        for(int j=0;j<max(sizeof(a)/4,sizeof(b)/4);j++){
            a[j]=b[j];
        }
        for(int j=0;j<max(sizeof(ans)/4,sizeof(b)/4);j++){
            b[j]=ans[j];
        }
    }
    for(int i=sizeof(ans)/4-1;i>=0;i--){
        if(ans[i]!=0||flag==1){
            cout<<ans[i];
            flag=1;
        }
    }
    return 0;
}

预期效果是输入n,输出斐波那契数列的第n个

2024/11/4 21:39
加载中...