分类: C/C++
2015-02-04 10:02:15
求1*2*3*4*5.
方法一:可以用最原始的方法进行: 步骤1:先求的1乘以2,得到结果2.
步骤2:将步骤1的乘积2再乘以3,得到结果6.
步骤3:将6再乘以4,得24.
步骤4:将24再乘以5,得120.这就是最后的结果.
这样的算法虽然是正确的,但太繁琐了。如果要求1*2*32*.....*100,则要999个步骤才能完成,显然是不可取的.而且每次都要直接使用上一步骤具体的运算结果(2,4,6,24),也不方便。
方法2: 设置两个变量,一个变量代表被乘数,一个变量代表乘数。不另设变量存放在乘机结果,而是直接将每一步的乘积放在被乘数里.今设变量p为被乘数,变量i为乘数,用循环的算法来求结果。如下:
S1:使p=1;
S2:使i=2;
S3:使p*i相乘,乘积仍放回变量p中,可以表示为p*i=p;
S4:使i的值增加,故i+1=i;
S5:如果不大于5,返回重新执行S3及其后的S4 S5,否则,算法结束。最后得到p的值就是5!的值.
注S代表的是步骤的意思,其实是(step)的缩写.