作业比赛编号 : 1765 - wym高精度加

#include<bits/stdc++.h>
using namespace std;
int a[101]={0,1},b[101]={0,1},c[101];
int main(){
    int n,m;
    cin>>n>>m;
    int lena=1,lenb=1,lenc=0;
    for(int i=3;i<=m-n+1;i++){
        lenc=lenb;
        for(int j=1;j<=lenc;j++){
            c[j]=a[j]+b[j];
        }//斐波那契数列的相加
        for(int j=1;j<=lenc;j++){
            c[j+1]+=c[j]/10;
            c[j]%=10;
        }
        while(c[lenc+1]>0) lenc++;//进位
        for(int j=1;j<=lenb;j++){
            a[j]=b[j];
        }
        for(int j=1;j<=lenc;j++){
            b[j]=c[j];
        }
        lenb=lenc;
    }
    for(int i=lenc;i>0;i--){
        cout<<c[i];
    }
}

比赛尚未开始或私有,不能查看题目。




返回上一页