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) %显示结果
%求斐波那契数列中第一个有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) %显示结果
相关文章推荐
- Project Euler Problem 25 1000-digit Fibonacci number
- projecteuler---->problem=25----1000-digit Fibonacci number
- Problem 25:1000-digit Fibonacci number
- Problem 25 1000-digit Fibonacci number (高精度fibonacci)
- Project Euler:Problem 25 1000-digit Fibonacci number
- project euler 25 1000-digit Fibonacci number
- No_25:1000-digit Fibonacci number
- 25 1000-digit Fibonacci number - Project Euler
- project euler problem 25 大数连加Fibonacci序列
- project euler problem 16:2^1000结果各位数求和
- Project Euler Problem 16 Power digit sum
- Project Euler Problem 25
- PE 025 1000-digit Fibonacci number
- Project Euler Problem 92 Square digit chains
- 欧拉项目 Problem 25 of in the Fibonacci sequence to contain 1000 digits
- Project Euler Problem 104 Pandigital Fibonacci ends
- Project Euler problem 25
- Project Euler Problem 12: Highly divisible triangular number
- Matlab 编程 Project Euler Problem 20 Factorial digit sum
- 欧拉工程第25题:1000-digit Fibonacci number