【正文】
驗(yàn)步驟: 步驟一:通過分析得知只要在計(jì)算過程中不斷保留計(jì)算結(jié)果的低三位即可得出結(jié)果,于是定義一個子函數(shù)用來計(jì)算一個數(shù)保留低三位后的值。 步驟二:控制循環(huán)將累次乘的積不斷乘以13,將結(jié)果調(diào)用子函數(shù)保留低三位,直到循環(huán)結(jié)束輸出結(jié)果。調(diào)試及編譯過程:出現(xiàn)的不足及修改:無 運(yùn)行結(jié)果:輸出預(yù)期的結(jié)果。(七)解100!尾數(shù)有多少個0。源程序如下:shangji3\chengxu20include int main(){ int r,s=0,r1=100。 do { r=r1/5。 s+=r。 }while(r1/=5)。 printf(the number of 0 is %d,s)。 return 0。}實(shí)驗(yàn)步驟: 步驟一:通過查找資料并分析得,造成0的原因?yàn)橐粚?和5的乘積,而在1到100的數(shù)中,有2的因子比有5的因子多得多,于是只用計(jì)算一個數(shù)中5的因子有多少個,再把它們相加。 步驟二:由于1到100中,每隔五個數(shù)就有一個數(shù)是5的倍數(shù),而在這些5的倍數(shù)中,又每隔5個數(shù)就會有一個是25的倍數(shù),只是5的倍數(shù)而不是25的倍數(shù)時,能得出1個零,是25的倍數(shù)時,能得出2個零。 步驟三:將100除以5得出20個數(shù),再將20除以5得出4,4除以5為0 ,因此計(jì)算得20+4+0=。調(diào)試及編譯過程:現(xiàn)的不足及修改:開始時打算通過保留末尾零以及下一位(即87000保留7000)來計(jì)算結(jié)果,但這樣做會造成兩個結(jié)果,一是會造成溢出,二是有些事25及更大的倍數(shù)如2500,若只保留500,在乘以4的時候會少算一個零,這樣做無法確定合適的保留位數(shù)。于是通過查找資料等方式,尋求到了科學(xué)的解決方法。1. 通過此次實(shí)驗(yàn),了解到算法是以簡潔為靈魂的,在一個問題有多種解決辦法時應(yīng)首先采取簡潔的方法,而且在設(shè)計(jì)算法時不能只考慮理想情況,還要考慮到算法的時間復(fù)雜性和空間復(fù)雜性。2. 通過本次實(shí)驗(yàn),加強(qiáng)子函數(shù)調(diào)用和循環(huán)控制的練習(xí),并能夠通過運(yùn)行結(jié)果適當(dāng)修改循環(huán)因子的循環(huán)條件,來使程序運(yùn)行正確。3. 通過本次實(shí)驗(yàn),加強(qiáng)對多重循環(huán)的應(yīng)用能力,以及控制內(nèi)層循環(huán)和外層循環(huán)之間的聯(lián)系,在編譯過程中若發(fā)現(xiàn)循環(huán)次數(shù)不對,直接改變控制循環(huán)的條件可以發(fā)現(xiàn)問題。4. 通過此次實(shí)驗(yàn),引入了子函數(shù),加深對子函數(shù)方便性的理解。5. 通過此次實(shí)驗(yàn),加強(qiáng)了對循環(huán)語句的練習(xí),增加了一種新的控制循環(huán)結(jié)束的方式,引入預(yù)編譯的過程。6. 通過本次實(shí)驗(yàn),加深了對do while 循環(huán)的理解,學(xué)會了控制循環(huán)的新方法。