編寫一個程序,求1!+2!+…+10!的值。
程序為:
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
這個問題是求前10個正整數的階乘之和,可以用“WHILE+ WHILE”循環(huán)嵌套語句格式來實現。
程序結構要做到如下步驟:
①處理“N!”的值;(注:處理N!值的變量就是一個內循環(huán)變量)
②累加“N!”的值。(注:累加N!值的變量就是一個外循環(huán)變量)
顯然,通過10次循環(huán)可分別求出1!、2!、…、10!的值,并同時累加起來, 可求得S的值。而求T=N!,又可以用一個循環(huán)(內循環(huán))來實現。
程序為:
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
程序可改為:
s=0
i=1
j=1
WHILE i<=10
j=j*i
s=s+j
i=i+1
WEND
PRINT s
END
顯然第二個程序的效率要比第一個高得多。第一程序要進行1+2+…+10=55次循環(huán),而第二程序進行10次循環(huán)。如題目中求的是1。2。1000!,則兩個程序的效率區(qū)別更明顯。點評:解決具體的構造循環(huán)語句的算法問題,要盡可能的少引入循環(huán)變量,否則較多的變量會使得設計程序比較麻煩,并且較多的變量會使得計算機占用大量的系統資源,致使系統緩慢。另外,也盡可能使得循環(huán)嵌套的層數少,否則也浪費計算機的系統資源。
湖北省互聯網違法和不良信息舉報平臺 | 網上有害信息舉報專區(qū) | 電信詐騙舉報專區(qū) | 涉歷史虛無主義有害信息舉報專區(qū) | 涉企侵權舉報專區(qū)
違法和不良信息舉報電話:027-86699610 舉報郵箱:58377363@163.com