主题:[求助]大哥哥大姐姐们,帮我解答两道题啊!急啊,谢谢拉!
akeshow520
[专家分:0] 发布于 2009-05-24 08:19:00
大哥哥大姐姐们,帮我解答两道题啊!急啊,谢谢拉!
1.求Fibonacci前20项的和。
2.求100~600范围内的素数,并要求使用函数调用的方式。
老师留的考试作业,小弟还没学好,那位前辈帮着解答下啊,谢谢拉!!
回复列表 (共4个回复)
沙发
ronei [专家分:360] 发布于 2009-05-25 22:05:00
program Fibonacci
implicit none
integer :: n, sum
integer :: Fibonacci_sum
write(*,*) 'Please input an integer:'
read *, n
sum = Fibonacci_sum(n)
write(*,*) 'The sum of the first',n,'terms of Fibonacci is', sum
end
integer function Fibonacci_sum(n)
implicit none
integer,intent(in) :: n
integer :: i
integer :: Fibonacci(n)
Fibonacci(1) = 1
Fibonacci_sum = 0
Do i=1, n
if(i==1) then
Fibonacci_sum = 1
if(n==1) exit
else if(i==2) then
Fibonacci(i) = Fibonacci(1)
Fibonacci_sum = Fibonacci_sum + Fibonacci(i)
else
Fibonacci(i) = Fibonacci(i-1)+Fibonacci(i-2)
Fibonacci_sum = Fibonacci_sum + Fibonacci(i)
endif
Enddo
return
end function
板凳
ronei [专家分:360] 发布于 2009-05-25 22:16:00
看成fortran板块的了。不好意思
3 楼
mikle [专家分:390] 发布于 2009-05-26 13:33:00
%回车.输入 20
>> n=input('please input n='); %输入前n项的n值..
for i=1:(n-2)
a(1)=1;a(2)=1;
a(i+2)=a(i+1)+a(i);
end
a'
disp(['和为:' num2str(sum(a))])
4 楼
mikle [专家分:390] 发布于 2009-05-26 13:34:00
%% isprime(n);
%如果n是素数,返回1
%如果n是合数,返回0。
function b=prime(n)
a=ceil(sqrt(n));
b=1;
for i=2:a
if mod(n,i)==0
b=0;
break;
end
end
我来回复