VFP循环的一道题.求1!+2!+3!+……+20!=的值

问题描述:

VFP循环的一道题.求1!+2!+3!+……+20!=的值
书上是这样解的:
s=0
FOR n=1 TO 20
t=1
FOR m=1 TO n
t=t*m
ENDFOR
s=s+t
ENDFOR
大部分都能看懂,就是m=1 TO n m和n有什么关系啊,最好能用具体的数举个例子.
1个回答 分类:综合 2014-11-04

问题解答:

我来补答
内层循环中"m=1 TO n"的意思是m从1累加至n,其中此时的n是此时外层循环中n的值
内层循环是算t的值:1*2*3...*n即为n的阶乘
外层循环是算n为1至20的t的总和
流程是这样的:
一开始,n=1,t=1然后加入内层循环,t=t*m=1,此时m等于n,跳出内层循环循环,s=s+t=0+1=1;
n=n+1=2,t=1,然后加入内层循环,t=t*m=t*1=1,此时m不等于n,继续内层循环,m=m+1=2,t=t*m=1*2=2,此时m=n,跳出内层循环,s=s+t=1+2=3;
.
不好意思哈,表述能力不强.能看懂吗
再问: n=1的时候我能看懂,n=2的时候为什么t=t*m=t*1=1,m是怎么知道的啊。那就是只要m=n 了就可以跳出内层循环再计算下一步?
再答: FOR m=1 TO n的意思就是m从1累加至n,每一次进入内层循环的时候m都是从1开始累加至n的。m=n时先进行t=t*m这一步,然后跳出内层循环,继续外层循环中的下一步。
 
 
展开全文阅读
剩余:2000
上一页:指函数和对函数
下一页:字丑请见谅。