⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 例2.1.txt

📁 这是有清华大学出版社出版
💻 TXT
字号:
例2.1 求1×2×3×4×5。
可以用最原始的方法进行。
步骤1: 先求1×2,得到结果2。
步骤2: 将步骤1得到的乘积2再乘以3,得到结果6。
步骤3: 将6再乘以4,得24。
步骤4: 将24再乘以5,得120。这就是最后的结果。
    这样的算法虽然是正确的,但太繁琐。如果要求1×2×…×1000,则要写999个步骤,显然是不可取的。而且每次都直接使用上一步骤的数值结果(如2,6,24等),也不方便。应当找到一种通用的表示方法。
   可以设两个变量,一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。今设p为被乘数,i为乘数。用循环算法来求结果。可以将算法改写如下: 
    S1: 使p=1
    S2: 使i=2
    S3: 使p×i,乘积仍放在变量p中,可表示为p×i=>p
    S4: 使i的值加1,即i+1=>i
    S5: 如果i不大于5,返回重新执行步骤S3以及其后的步骤S4和S5;否则,算法结束。最后得到p的值就是5!的值。
上面的S1,S2…代表步骤1,步骤2……S是step(步)的缩写。这是写算法的习惯用法。
    请读者仔细分析这个算法,能否得到预期的结果。显然这个算法比前面列出的算法简练。
    如果题目改为求1×3×5×7×9×11。
    算法只需作很少的改动即可: 
    S1: 1=>p
    S2: 3=>i
    S3: p×i=>p
    S4: i+2=>i
S5: 若i≤11,返回S3; 否则,结束。
    可以看出,用这种方法表示的算法具有通用性、灵活性。S3到S5组成一个循环,在实现算法时,要反复多次执行S3、S4、S5等步骤,直到某一时刻,执行S5步骤时经过判断,乘数i已超过规定的数值而不返回S3步骤为止。此时算法结束,变量p的值就是所求结果。
由于计算机是高速进行运算的自动机器,实现循环是轻而易举的,所有计算机高级语言中都有实现循环的语句。因此,上述算法不仅是正确的,而且是计算机能实现的较好的算法。
    请读者仔细分析循环结束的条件,即S5步骤。如果在求1×2×…×11时,将S5步骤写成
    S5: 若i<11,返回S3。
    这样会有什么问题?会得到什么结果?

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -