Chinaunix首页 | 论坛 | 博客
  • 博客访问: 961718
  • 博文数量: 210
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2070
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-19 21:54
文章分类

全部博文(210)

文章存档

2020年(2)

2019年(18)

2018年(27)

2017年(5)

2016年(53)

2015年(88)

2014年(17)

分类: 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)的缩写.


                                         

阅读(1775) | 评论(0) | 转发(0) |
0

上一篇:100以内的合数

下一篇:用心记下快捷键

给主人留下些什么吧!~~