一道高中数学题:
S=1+1+2+3+5+8+13+21+......+n>100,后一项是前两项的和。设计求n的最小值的算法程序。并画出程序框图。谢啦!...
S=1+1+2+3+5+8+13+21+......+n>100,后一项是前两项的和。设计求n的最小值的算法程序。并画出程序框图。谢啦!
展开
2个回答
展开全部
程序图不太好画……直接把程序给你吧,我用R语言编的,思路如下:
设计3个变量,a1,a2代表前两项,b代表前两项的和
最初时,S = a1 + a2 + b,即1+1+2 = 4
之后赋值:a1 = a2 a2 = b b = a1+a2,这样a1 a2 b 分别变为1,2,3,再求和:S = S + b
当S值小于等于100时,重复上述循环,当S值大于100时,停止
程序如下:
rm(list=ls())
a1=1
a2=1
b=a1+a2
s=a1+a2+b
z=array(0,dim=c(1,30))
z[1]=a1
z[2]=a2
z[3]=b
j=4
while(s<=100)
{
a1=a2
a2=b
b=a1+a2
z[j]=b
j=j+1
s=s+b
}
b
s
z[z[]!=0]
这里的z向量用于记录数列,运行结果为:
b = 55
s = 143
z = 1 2 3 5 8 13 21 34 55
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询