disp(str1) disp(str2)
用WHILE语句执行如下: n=1; s=1;
while(s<=10^100) s=s*n; n=n+1; end
str1=['n=',num2str(n-1)]; str2=['n!=',num2str(s)]; disp(str1) disp(str2)
2、 已知 f1=1,n=1
f2=0,n=2 f3=1,n=3
fn=fn-1-2fn-2+fn-3,n>3
求f1 ~ f50中:
1)最大值和最小值及它们的位置,各数之和(最大值给变量MAX,其位置给变量x,最小值给变量MIN,其位置给变量y,各数之和给变量SUM)。
2)正数、零、负数的个数(依次赋值给变量positive,zero,negative)。
法一: clear; f(1)=1; f(2)=0; f(3)=1; for n=4:50
f(n)=f(n-1)-2*f(n-2)+f(n-3); end
[MAX,x]=max(f) %注意不要分号,要执行的语句 [MIN,y]=min(f) SUM=sum(f)
positive=length(find(f>0)) zero=length(find(f==0)) negative=length(find(f<0)) MAX =
406631 x = 49 MIN = -403795 y = 50
SUM = 76861 positive = 25 zero = 2 negative = 23
法二:clear all,clc
for n=1:50 if n==1 f(1)=1; elseif n==2 f(2)=0; elseif n==3 f(3)=1; elseif n>3
f(n)=f(n-1)-2*f(n-2)+f(n-3); end end
[MAX,y]=max(f) [Min,x]=min(f) positive=length(find(f>0))
zero=length(find(f==0))
negative= length(find(f<0)) 3、 Fibonacci数组的元素满足Fibonacci规则:
ak+2=ak+ak+1,(k=1,2,3,?);且a1= a2=1。
请设计一段程序,求出该数组中第一个大于10000的元素 要求显示的结果为: i=21 a(i)=10946 或者 a(21)=10946
法一:a(1)=1; a(2)=1;
for k=1:10000 %不能是3:10000 a(k+2)=a(k)+a(k+1); if a(k)>10000 break; end end
disp(['k=',num2str(k)]) disp(['a(k)=',num2str(a(k))]) 法二:clear,clc s=1; for n=1:inf

