大數(shù)階乘問題C中課程設(shè)計(jì)絕無(wú)僅有

上傳人:仙*** 文檔編號(hào):34972545 上傳時(shí)間:2021-10-24 格式:DOC 頁(yè)數(shù):11 大?。?52.53KB
收藏 版權(quán)申訴 舉報(bào) 下載
大數(shù)階乘問題C中課程設(shè)計(jì)絕無(wú)僅有_第1頁(yè)
第1頁(yè) / 共11頁(yè)
大數(shù)階乘問題C中課程設(shè)計(jì)絕無(wú)僅有_第2頁(yè)
第2頁(yè) / 共11頁(yè)
大數(shù)階乘問題C中課程設(shè)計(jì)絕無(wú)僅有_第3頁(yè)
第3頁(yè) / 共11頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《大數(shù)階乘問題C中課程設(shè)計(jì)絕無(wú)僅有》由會(huì)員分享,可在線閱讀,更多相關(guān)《大數(shù)階乘問題C中課程設(shè)計(jì)絕無(wú)僅有(11頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、西安建筑科技大學(xué)課程設(shè)計(jì)(論文) 課程設(shè)計(jì)(論文) 課程名稱: 題 目: 求解1000的階乘 院 (系): 理學(xué)院 專業(yè)班級(jí): 應(yīng)數(shù)0801 姓 名: 學(xué) 號(hào): 081030107 指導(dǎo)教師: 2011年 1 月 14 日 摘要 計(jì)算數(shù)字的階乘問題,是比較常見,而且比較重

2、要的一種函數(shù)。其中計(jì)算一般較小的數(shù)字時(shí),采用迭代法,這種方法簡(jiǎn)潔、方便。但是,在運(yùn)算一些較大的數(shù)字的階乘時(shí),例如計(jì)算1000的階乘,由于沒有任何一個(gè)編程語(yǔ)言有一種變量或機(jī)制來儲(chǔ)存1000!這么大的數(shù),所以就會(huì)產(chǎn)生數(shù)字越界問題,也叫上溢。因此,如何計(jì)算大數(shù)的階乘問題就是本文研究的重點(diǎn)。本文詳細(xì)討論了如何采用數(shù)組的方法計(jì)算原題,從而避免數(shù)字越界問題。 關(guān)鍵詞:越界,數(shù)組,階乘 目錄 1.緒論 4 2.程序說明 4 2.1問題描述 4 2.2開發(fā)平臺(tái) 4 2.3變量命名規(guī)則4 3.程序設(shè)計(jì) 5 3.1設(shè)計(jì)思路:5 3.2設(shè)計(jì)難點(diǎn)及處理6 4.結(jié)果及分析6 4.1運(yùn)行結(jié)

3、果 6 4.2結(jié)果分析7 4.3需要完善的地方8 4.4心得體會(huì)8 5.參考文獻(xiàn)9 6.附錄10 1.緒論 在數(shù)學(xué)計(jì)算的很多領(lǐng)域中都涉及數(shù)字的階乘問題,因此,數(shù)字的階乘問題是十分常見且重要的一種函數(shù)。一般情況下,計(jì)算較小的數(shù)字的階乘時(shí),采用遞歸調(diào)用算法。這個(gè)是最容易想的,如果是1的階乘,則返回1,其他的都返回n-1的階乘與n的積,循環(huán)調(diào)用即可。不過問題是即使用double來存放該值,由于double本身的精度、能存的數(shù)字大小所限,算不了太大的數(shù)的階乘。因此,計(jì)算較大數(shù)字的階乘時(shí),一種簡(jiǎn)潔高效的算法的開發(fā)就顯得十分緊迫和重要了。 2.程序說明 2.1問題描述: 求解

4、1000的階乘 2.2開發(fā)平臺(tái): Microsoft Visual C++ 6.0 2.3變量命名規(guī)則 numArr[] 數(shù)組 total 數(shù)組元素的值 rem 余數(shù) i 數(shù)組元素編號(hào) count 數(shù)組元素需乘的數(shù) 3.程序設(shè)計(jì) 3.1設(shè)計(jì)思路: 用numArr[]數(shù)組來存放階乘的每一位數(shù)字,首先令數(shù)組的最后一位的數(shù)值為1,位數(shù)為1,然后將每次相乘的乘積存回?cái)?shù)組,并循環(huán)處理每個(gè)數(shù)組中超過10的數(shù),若數(shù)值超過10,則需

5、要進(jìn)位,將位數(shù)加1,原來的數(shù)除以10,商數(shù)加前一位數(shù)的數(shù)值后存回前一位數(shù)的數(shù)組中,再將余數(shù)存回原來位數(shù)的數(shù)組中。 例如,求12! 12! = 11!* 12 11! = 39916800 12! = 479001600 3.2設(shè)計(jì)難點(diǎn)及處理 由于位數(shù)的限制,沒有任何編程語(yǔ)言,可以存儲(chǔ)例如1000!這個(gè)乘法結(jié)果的量。解決的方法是采用數(shù)組來存儲(chǔ)。 4.結(jié)果及分析 4.1運(yùn)行結(jié)果 4.2結(jié)果分析 通過使用數(shù)組的方法,可以有效避免數(shù)字越界問題,存儲(chǔ)較大數(shù)字的階乘,得到準(zhǔn)確的計(jì)算結(jié)果。 4.3需要完善的地方 程序的編寫有待進(jìn)一步的精簡(jiǎn),本程序可以解決100

6、0的階乘問題,但對(duì)于特別巨大的數(shù)字的階乘問題還是無(wú)法解決。并且不能用迭代法計(jì)算較小數(shù)的階乘??稍诖嘶A(chǔ)上編寫萬(wàn)能階乘計(jì)算程序。 4.4心得體會(huì) 通過這次的課程設(shè)計(jì),我查閱了很多資料,并和同學(xué)們一起討論,使我學(xué)會(huì)了獨(dú)立自學(xué),以及如何互相討論學(xué)習(xí),增強(qiáng)了我對(duì)于C++語(yǔ)言的掌握,和編寫程序的能力。使我受益匪淺。 5.參考文獻(xiàn) [1] (美) Bjarne Stroustrup 著. C++程序設(shè)計(jì)語(yǔ)言(特別版). ( 裘宗燕 ).北京: 機(jī)械工業(yè)出版社,2002.125~188 [2] 何渝編 著.計(jì)算機(jī)常用數(shù)值算法與程序[M].北京:人民郵電出版社,2003.73~125 [3]鄭

7、麗 著.C++語(yǔ)言程序設(shè)計(jì)(第4版)[M].北京:清華大學(xué)出版社,2010.188~248 [4]龔志祥 著.Visual C++編程實(shí)例與技巧集粹[M].北京:兵器工業(yè)出版社,2004.265~312 [5](美)Barbara Moo, Andrew Koening 著.C++沉思錄.(梁實(shí)秋).北京:人民郵電出版社,2008.86~137 6.附錄 核心源程序: #include #include void main() { clrscr(); int numArr[3000]; // Approximately , si

8、ze of array depends on size of factorial. int total,rem=0,count; //rem use to save remainder of division(Carry Number). register int i; for(i=0;i<3000;i++) numArr[i]=0; //set all array on NULL. i=2999; //start from end of array. numArr[2999]=1; for(count=2;count<=1000;count++)//Refe

9、r to my article for more explanation. { while(i>0) { total=numArr[i]*count+rem; rem=0; if(total>9) { numArr[i]=total%10; rem=total/10; } else numArr[i]=total; i--; } rem=0; total=0; i=2999; } for(i=0;i<3000;i++) // Display arrays cell to show factorial 1000 { if(numArr[i]!=0 | count==1) { cout<

展開閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!