精英家教网 > 高中数学 > 题目详情

编写一个程序,求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!,则两个程序的效率区别更明显。点评:解决具体的构造循环语句的算法问题,要尽可能的少引入循环变量,否则较多的变量会使得设计程序比较麻烦,并且较多的变量会使得计算机占用大量的系统资源,致使系统缓慢。另外,也尽可能使得循环嵌套的层数少,否则也浪费计算机的系统资源。

练习册系列答案
相关习题

科目:高中数学 来源: 题型:

编写一个程序,求1!+2!+…+10!的值.

查看答案和解析>>

科目:高中数学 来源: 题型:

编写一个程序,求1!+2!+…+10!的值(其中n!=1×2×3×…×n).

查看答案和解析>>

科目:高中数学 来源:2012-2013学年山东省青岛二中高三(上)9月月考数学试卷(文科)(解析版) 题型:解答题

编写一个程序,求1!+2!+…+10!的值.

查看答案和解析>>

科目:高中数学 来源:2012-2013学年山东省青岛二中高三(上)9月月考数学试卷(文科)(解析版) 题型:解答题

编写一个程序,求1!+2!+…+10!的值.

查看答案和解析>>

同步练习册答案