您的位置:首页 > 编程语言 > MATLAB

Project Euler Problem 25 :1000-digit Fibonacci number

2017-10-15 20:13 751 查看
%a_thousand_digit_Fibonacci_number_25.m

%求斐波那契数列中第一个有1000位数字的数

%方法:由于计算机没法显示1000位的数,所以采用数组,第一位是个位,第二位是十位,......

clear all;

close all;

N=1000;

Fibo_vec_1=zeros(1,N);  %数组1

Fibo_vec_2=zeros(1,N);  %数组2

Fibo_vec_3=zeros(1,N);  %数组3=数组1+数组2

Fibo_vec_1(1)=1;  %初始化 数组1

Fibo_vec_2(1)=1;  %初始化 数组2

while Fibo_vec_3(N)==0  %直到第N位数字不为0才退出循环

    Fibo_vec_3=Fibo_vec_1+Fibo_vec_2;

    for i=1:length(Fibo_vec_3)  % find() 函数能够找到数组非零值的下标

        %将数组Fibo_vec_3中超过9的元素 进位

        if(Fibo_vec_3(i)>9)

            Fibo_vec_3(i+1)=Fibo_vec_3(i+1)+1;

            Fibo_vec_3(i)=Fibo_vec_3(i)-10;

        end

    end

    %更新数组,为下一次求和做准备

    Fibo_vec_1=Fibo_vec_2;

    Fibo_vec_2=Fibo_vec_3;

end

disp(Fibo_vec_3)  %显示结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息