編寫一個(gè)程序,求1!+2!+…+10!的值(其中n!=1×2×3×…×n).

分析:這個(gè)問題可以用“WHILE+ WHILE”循環(huán)嵌套語句格式來實(shí)現(xiàn).

程序結(jié)構(gòu)要做到如下步驟:

①處理“n!”的值;(注:處理n!的值的變量是一個(gè)內(nèi)循環(huán)變量)

②累加“n!”的值.(注:累加n!的值的變量是一個(gè)外循環(huán)變量)

顯然,通過10次循環(huán)可分別求出1!、2!、…、10!的值,并同時(shí)累加起來, 可求得S的值.而求T=n!,又可以用一個(gè)循環(huán)(內(nèi)循環(huán))來實(shí)現(xiàn).

解:程序?yàn)椋?/p>

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

思考:上面程序中哪個(gè)變量是內(nèi)循環(huán)變量,哪個(gè)變量是外循環(huán)變量?

解答:內(nèi)循環(huán)變量:j,t.外循環(huán)變量:s,i.

    上面的程序是一個(gè)的“WHILE+WHILE”型循環(huán)嵌套語句格式.這是一個(gè)比較好想的方法,但實(shí)際上對(duì)于求n!,我們也可以根據(jù)求出的(n-1)!乘上n即可得到,而無需重新從1再累乘到n.

程序可改為:

s=0

i=1

j=1

WHILE i<=10

  j=j*i

  s=s+j

  i=i+1

WEND

PRINT s

END

    顯然第二個(gè)程序的效率要比第一個(gè)高得多.第一程序要進(jìn)行1+2+…+10=55次循環(huán),而第二程序進(jìn)行10次循環(huán).如題目中求的是1!+2。1 000!,則兩個(gè)程序的效率區(qū)別會(huì)更明顯.

點(diǎn)評(píng):解決具體的構(gòu)造循環(huán)語句的算法問題,要盡可能地少引入循環(huán)變量,否則較多的變量會(huì)使得設(shè)計(jì)程序比較麻煩,并且較多的變量會(huì)使得計(jì)算機(jī)占用大量的系統(tǒng)資源,致使系統(tǒng)緩慢.另外,也盡可能使得循環(huán)嵌套的層數(shù)少,否則也浪費(fèi)計(jì)算機(jī)的系統(tǒng)資源.

練習(xí)冊(cè)系列答案
相關(guān)習(xí)題

科目:高中數(shù)學(xué) 來源: 題型:

編寫一個(gè)程序,求1!+2!+…+10!的值.

查看答案和解析>>

科目:高中數(shù)學(xué) 來源: 題型:

編寫一個(gè)程序,求1!+2!+…+10!的值。

查看答案和解析>>

科目:高中數(shù)學(xué) 來源:2012-2013學(xué)年山東省青島二中高三(上)9月月考數(shù)學(xué)試卷(文科)(解析版) 題型:解答題

編寫一個(gè)程序,求1!+2!+…+10!的值.

查看答案和解析>>

科目:高中數(shù)學(xué) 來源:2012-2013學(xué)年山東省青島二中高三(上)9月月考數(shù)學(xué)試卷(文科)(解析版) 題型:解答題

編寫一個(gè)程序,求1!+2!+…+10!的值.

查看答案和解析>>

同步練習(xí)冊(cè)答案