编写一个程序,求1!+2!+…+10!的值。
程序为:
s=0
i=1
WHILE i<=10
j=1
t=1
WHILE j<=i
t=t*j
j=j+1
WEND
s=s+t
i=i+1
WEND
PRINT s
END
这个问题是求前10个正整数的阶乘之和,可以用“WHILE+ WHILE”循环嵌套语句格式来实现。
程序结构要做到如下步骤:
①处理“N!”的值;(注:处理N!值的变量就是一个内循环变量)
②累加“N!”的值。(注:累加N!值的变量就是一个外循环变量)
显然,通过10次循环可分别求出1!、2!、…、10!的值,并同时累加起来, 可求得S的值。而求T=N!,又可以用一个循环(内循环)来实现。
程序为:
s=0
i=1
WHILE i<=10
j=1
t=1
WHILE j<=i
t=t*j
j=j+1
WEND
s=s+t
i=i+1
WEND
PRINT s
END
程序可改为:
s=0
i=1
j=1
WHILE i<=10
j=j*i
s=s+j
i=i+1
WEND
PRINT s
END
显然第二个程序的效率要比第一个高得多。第一程序要进行1+2+…+10=55次循环,而第二程序进行10次循环。如题目中求的是1!+2!+…+1000!,则两个程序的效率区别更明显。点评:解决具体的构造循环语句的算法问题,要尽可能的少引入循环变量,否则较多的变量会使得设计程序比较麻烦,并且较多的变量会使得计算机占用大量的系统资源,致使系统缓慢。另外,也尽可能使得循环嵌套的层数少,否则也浪费计算机的系统资源。
湖北省互联网违法和不良信息举报平台 | 网上有害信息举报专区 | 电信诈骗举报专区 | 涉历史虚无主义有害信息举报专区 | 涉企侵权举报专区
违法和不良信息举报电话:027-86699610 举报邮箱:58377363@163.com