高級(jí)資格題庫(kù)(押品)及高精度運(yùn)算(C++)_第1頁
高級(jí)資格題庫(kù)(押品)及高精度運(yùn)算(C++)_第2頁
高級(jí)資格題庫(kù)(押品)及高精度運(yùn)算(C++)_第3頁
高級(jí)資格題庫(kù)(押品)及高精度運(yùn)算(C++)_第4頁
高級(jí)資格題庫(kù)(押品)及高精度運(yùn)算(C++)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一、簡(jiǎn)答題1、押品入庫(kù)時(shí)檔案包括哪些?答:押品外部評(píng)估報(bào)告、內(nèi)部評(píng)估報(bào)告;押品所有權(quán)、使用權(quán)證或證明文件;已辦理抵(質(zhì))押登記的他項(xiàng)權(quán)證或有關(guān)證明文件;權(quán)利質(zhì)押中的各種有價(jià)單證及入庫(kù)的有效憑證;押品保險(xiǎn)單及保費(fèi)付費(fèi)憑證復(fù)印件;其他能夠證明抵(質(zhì))押權(quán)有效的相關(guān)文件;現(xiàn)場(chǎng)勘查表和實(shí)物照片;其他應(yīng)歸檔的材料等。2、評(píng)估審查工作包括哪些內(nèi)容?(1)審核評(píng)估資料錄入的準(zhǔn)確性;(2)審查中介評(píng)估機(jī)構(gòu)提交的押品價(jià)值評(píng)估報(bào)告和技術(shù)報(bào)告(如有);(3)審查我行內(nèi)部評(píng)估人員評(píng)估操作流程的合規(guī)性和科學(xué)性;(4)根據(jù)評(píng)估需要,到押品現(xiàn)場(chǎng)進(jìn)行勘查;(5)審查評(píng)估所用方法的恰當(dāng)性和所依據(jù)原則的合理性,并撰寫內(nèi)部評(píng)估報(bào)告或出具審查意見;在參數(shù)選取不合理時(shí),可對(duì)押品評(píng)估的各項(xiàng)不合理的參數(shù)進(jìn)行必要調(diào)整;(6)對(duì)抵質(zhì)押風(fēng)險(xiǎn)進(jìn)行深入全面分析。3、在市場(chǎng)法評(píng)估房地產(chǎn)過程中,可比案例應(yīng)符合哪些要求?答:選取的可比實(shí)例應(yīng)符合下列要求:(1)可比案例與評(píng)估對(duì)象所處地段相同,或是在同一供需圈內(nèi)的類似地段;(2)用途相同:大類用途相同,最好小類相同。大類用途一般分為:居住、商業(yè)、辦公、旅館、工業(yè)、農(nóng)業(yè)等。(3)結(jié)構(gòu)相同:無論按建筑材料還是按受力情況均應(yīng)相同,按建筑材料可分為:鋼結(jié)構(gòu)、鋼筋混凝土結(jié)構(gòu)、磚混結(jié)構(gòu)、磚木結(jié)構(gòu)等。(4)權(quán)利性質(zhì)相同。(5)交易類型相同。(6)成交日期與評(píng)估基準(zhǔn)日相近,一般為1年內(nèi),最長(zhǎng)不超過3年;(7)可比實(shí)例的成交價(jià)格應(yīng)為正常價(jià)格或可修正為正常價(jià)格。除此之外,還應(yīng)統(tǒng)一付款方式、單價(jià)、幣種和貨幣單位、面積內(nèi)涵和面積單位等五個(gè)方面。二、論述題1、當(dāng)發(fā)生哪些事項(xiàng)時(shí),需進(jìn)行非周期性重評(píng)并自下而上發(fā)起重評(píng)流程?答:(1)行業(yè)風(fēng)險(xiǎn)嚴(yán)重惡化,對(duì)客戶或押品的未來收益有較大影響。(2)同類型資產(chǎn)市場(chǎng)價(jià)格或價(jià)格指數(shù)已經(jīng)大幅下降(如10%以上)。(3)對(duì)于房地產(chǎn)和土地使用權(quán)類押品,所在地區(qū)的城市規(guī)劃發(fā)生變化并對(duì)房地產(chǎn)價(jià)格有較大影響。(4)已接受的押品發(fā)生較大物理性損耗或質(zhì)量明顯下降。(5)借款人財(cái)務(wù)狀況惡化或發(fā)生信貸違約事件。(6)評(píng)估人員認(rèn)為需要重評(píng)的其他事項(xiàng)。2、工作中應(yīng)如何做好押品日常管理?答題要點(diǎn):(1)在貸款存續(xù)期間,應(yīng)密切關(guān)注押品實(shí)物狀態(tài)、權(quán)屬關(guān)系、市場(chǎng)環(huán)境等影響押品價(jià)值的因素,做好押品檔案管理、實(shí)物管理、風(fēng)險(xiǎn)管理等押品日常管理工作,保障我行債權(quán)的安全;(2)押品管理人員應(yīng)做好貸后押品現(xiàn)場(chǎng)勘查和調(diào)查工作,密切保持對(duì)押品實(shí)物狀態(tài)、法律權(quán)屬、市場(chǎng)環(huán)境的跟蹤和分析,切實(shí)保障押品在貸款存續(xù)期間安全、足值。(3)按規(guī)定開展押品周期重評(píng)和非周期重評(píng);(4)應(yīng)根據(jù)我行信貸業(yè)務(wù)檔案有關(guān)管理辦法要求對(duì)押品檔案實(shí)行統(tǒng)一管理;(5)做好貸后押品監(jiān)督檢查工作,對(duì)出現(xiàn)較大風(fēng)險(xiǎn)的押品采取積極應(yīng)對(duì)措施,如補(bǔ)充抵押物或提前還款;(6)其他與押品日常管理有關(guān)事項(xiàng),如押品缺口管理、數(shù)據(jù)庫(kù)信息采集等。3、請(qǐng)簡(jiǎn)述資產(chǎn)評(píng)估三個(gè)基本方法的適用前提。答題要點(diǎn):(1)市場(chǎng)法進(jìn)行資產(chǎn)評(píng)估需要滿足兩個(gè)最基本的前提條件:1)要有—個(gè)活躍的公開市場(chǎng);2)公開市場(chǎng)上要有可比的資產(chǎn)及其交易活動(dòng)。(2)收益法須具備的前提條件是:1)被評(píng)估資產(chǎn)的未來預(yù)期收益可以預(yù)測(cè)并可以用貨幣衡量;2)資產(chǎn)擁有者獲得預(yù)期收益所承擔(dān)的風(fēng)險(xiǎn)也可以預(yù)測(cè)并可以用貨幣衡量;3)被評(píng)估資產(chǎn)預(yù)期獲利年限可以預(yù)測(cè)。(3)采用成本法評(píng)估資產(chǎn)的前提條件是:1)被評(píng)估資產(chǎn)處于繼續(xù)使用狀態(tài)或被假定處于繼續(xù)使用狀態(tài);2)應(yīng)當(dāng)具備可利用的歷史資料。3)形成資產(chǎn)價(jià)值的耗費(fèi)是必須的。三、案例分析1、某建筑物為鋼筋混凝土結(jié)構(gòu),經(jīng)濟(jì)壽命為50年,有效經(jīng)過年數(shù)為8年。經(jīng)調(diào)查測(cè)算,現(xiàn)在重新建造全新狀態(tài)的該建筑物的建造成本為800萬元(建設(shè)期1年,均勻投入),管理費(fèi)用為建造成本的3%,年利息率為6%,銷售稅費(fèi)為50萬元,開發(fā)利潤(rùn)為120萬元。又知其中該建筑物的墻、地面等損壞的修復(fù)費(fèi)用為18萬元;裝修的重置價(jià)格為200萬元,平均壽命為5年,已使用2年;設(shè)備的重置價(jià)格為110萬元,平均壽命為10年,已使用8年。假設(shè)殘值率均為零,試估算該建筑物重置成本和建筑物的折舊總額。答:(1)計(jì)算建筑物的重置價(jià)格①建造成本=800萬元②管理費(fèi)用=800×3%=24萬元③投資利息=(800+24)×[(1+6%)0.5-1]=24.36萬元④建筑物的重置價(jià)格=800+24+24.36+50+120=1018.36萬元(2)計(jì)算建筑物的折舊額:①墻、地面等損壞的折舊額=18萬元②裝修部分的折舊額=200×1/5×2=80萬元③設(shè)備部分的折舊額=110×1/10×8=88萬元④長(zhǎng)壽命項(xiàng)目的折舊額=(1018.36-18-200-110)×1/50×8=110.5萬元該建筑物的折舊總額=18+80+88+110.5=296.5萬元2、有一待估宗地甲需評(píng)估,現(xiàn)搜集到與待估宗地條件類似的4宗地A、B、C、D,具體情況如下表。成交價(jià)單位:元/平方米宗地成交價(jià)交易時(shí)間交易情況容積率區(qū)域因素個(gè)別因素甲2008.101.200A8002007.1+2%1.3+1%0B8502008.1+1%1.40+1%C7602007.101.10-2%D7802007.101.0-1%-1%上表中的交易情況、區(qū)域因素及個(gè)別因素值,都是參照物宗地與待估宗地比較,負(fù)號(hào)表示參照物宗地條件比待估宗地條件差,正號(hào)表示參照物宗地條件比待估宗地條件優(yōu),數(shù)值大小代表對(duì)宗地地價(jià)的修正幅度。該城市此類用地容積率與地價(jià)關(guān)系為:當(dāng)容積率在1—1.5之間時(shí),容積率每增加0.1,宗地單位地價(jià)比容積率為1的地價(jià)增加3%。另外,該城市地價(jià)指數(shù)情況見下表。地價(jià)指數(shù)表年份2004.12005.12006.12007.12008.1指數(shù)100105108110111要求:試根據(jù)以上條件,求待估宗地2008年1月份的評(píng)估單價(jià)。解:(1)建立容積率地價(jià)指數(shù)表,如下:容積率1.01.1地價(jià)指數(shù)100103106109112(2)參照物地價(jià)修正為:A=800×100/102×111/110×106/109×100/101×100/100=762元/平方米B=850×100/101×111/111×106/112×100/100×100/101=789元/平方米C=760×100/100×111/110×106/103×100/100×100/98=805元/平方米D=780×100/100×111/110×106/100×100/99×100/99=851元/平方米(3)確定評(píng)估結(jié)果為:(762+789+805+851)÷4=3207÷4=801.75元/平方米3、某市建有一座綜合大廈,該大廈截止評(píng)估基準(zhǔn)日已使用5年。其中1-3層為商場(chǎng),建筑面積為2500平方米,4-10層為賓館,建筑面積為7500平方米。該大廈用地當(dāng)初以1250萬元獲得50年的土地使用權(quán),已使用5年。現(xiàn)該大廈所有者擬對(duì)大廈重新裝修、改造。為了獲得資金,擬將該大廈的土地使用權(quán)及地上建筑物作為抵押標(biāo)的物。經(jīng)某估價(jià)機(jī)構(gòu)評(píng)估,認(rèn)為如果按當(dāng)?shù)劂y行規(guī)定最高貸款比例為標(biāo)的物評(píng)估價(jià)值的60%,該大廈所有者最多可獲得銀行貸款36500萬元,你認(rèn)為該貸款額是否合理,請(qǐng)說明步聚和結(jié)果。據(jù)當(dāng)?shù)厥袌?chǎng)調(diào)查,同類物業(yè)的租金水平為商場(chǎng)3.75美元/平方測(cè)算米.日,有效出租率90%;賓館為2.5美元/平方米.日,空房率為20%;各類物業(yè)出租的費(fèi)用為:年管理費(fèi)為租金的5%,年維修費(fèi)為重置價(jià)的8%,該大廈的重置價(jià)為2700元/平方米,每年需支付稅費(fèi)30元/建筑平方米,年保險(xiǎn)費(fèi)為重置價(jià)的2‰,該大廈為框架結(jié)構(gòu),經(jīng)濟(jì)耐用年限為50年,殘值為0。綜合還原利率為8%。(注:美元與人民幣匯率為1:6.67)。(一年按365天計(jì)算。年金現(xiàn)值系數(shù):1/8%×[1-1/(1+8%)50=12.2335,1/8%×[1-1/(1+8%)48=12.1891,1/8%×[1-1/(1+8%)45=12.1084)解:第一步:計(jì)算大廈房地年總收益1、商場(chǎng)年總收益=3.75×6.67×2500×365×90%=2054.15萬元2、賓館年總收益=2.5×6.67×7500×365×(100%-20%)=3651.83萬元3、房地年總收益=2054.15+3651.83=5705.98萬元第二步:計(jì)算房地出租年總費(fèi)用1、年總管理費(fèi)=5705.98×5%=285.30萬元)2、年總維修費(fèi)=2700×(2500+7500)×8%=216萬元3、年總稅費(fèi)=30×(2500+7500)=30萬元4、年保險(xiǎn)費(fèi)=2700×(2500+7500)×2‰=5.40萬元5、年總費(fèi)用=285.30+216+30+5.40=536.7萬元第三步:計(jì)算房地年純收益=5705.98-536.7=5169.28萬元第四步:計(jì)算目前房地產(chǎn)總價(jià)值總價(jià)值=A/r×[1-1/(1+r)n]A:純收益5169.28萬元r:綜合還原率8%n:剩余土地使用權(quán)年限(50年-5年=45年)總價(jià)值=62591.71萬元第五步:結(jié)論可得的最大貸款額為:62591.7×60%=37555.02萬元由以上計(jì)算得出該宗地獲得最大貸款36500萬元是合理的,上述測(cè)算與結(jié)果可以說明。萬進(jìn)制高精度運(yùn)算(C++語言)目前在青少年信息學(xué)奧林匹克競(jìng)賽中所涉及到的高精度計(jì)算包括加(addition)、減(subtract)、乘(multiply)、除(divide)四種基本運(yùn)算。其中乘法分高精度數(shù)乘高精度數(shù)和單精度數(shù)乘高精度數(shù)兩種,除法一般指兩個(gè)單精度數(shù)相除,求解最終指定精度的解,找出循環(huán)節(jié)或輸出指定精度位數(shù)的小數(shù)。(注:高精度數(shù)與單精度數(shù)均指整數(shù))主要的解題思想是利用在小學(xué)就曾學(xué)習(xí)過的豎式加減乘除法則,用程序語言實(shí)現(xiàn)存在的問題主要有如何存儲(chǔ)高精度數(shù)的值,如何實(shí)現(xiàn)計(jì)算等問題。一.高精度數(shù)字的存儲(chǔ)我們?nèi)粘鴮懸粋€(gè)高精度數(shù)字,左側(cè)為其高位,右側(cè)為其低位,在計(jì)算中往往會(huì)因進(jìn)位(carry)或借位(borrow)導(dǎo)致高位增長(zhǎng)或減少,因此我們定義一個(gè)整型數(shù)組(intbignum[maxlen])從低位向高位實(shí)現(xiàn)高精度整數(shù)的存儲(chǔ),數(shù)組的每個(gè)元素存儲(chǔ)高精度數(shù)中的一位。(如下表所示)高精度數(shù)3(高位)……794(低位)intbignum[i]n……210顯然,在C++語言中,int類型(4個(gè)字節(jié)/32位計(jì)算機(jī))元素存儲(chǔ)十進(jìn)制的一位數(shù)字非常浪費(fèi)空間,并且運(yùn)算量也非常大,因此常將程序代碼優(yōu)化為萬進(jìn)制,即數(shù)組的每個(gè)元素存儲(chǔ)高精數(shù)字的四位。在后面的敘述過程中均以萬進(jìn)制為例介紹。(為什么選擇萬進(jìn)制,而不選擇更大的進(jìn)制呢?十萬進(jìn)制中的最大值99999相乘時(shí)得到的值是9999800001超過4個(gè)字節(jié)的存儲(chǔ)范圍而溢出,從而導(dǎo)致程序計(jì)算錯(cuò)誤。)在實(shí)際編寫程序代碼過程中常作如下定義:constintbase=10000;constintmaxlen=1000+1;intbignum[maxlen];說明:base表示進(jìn)制為萬進(jìn)制,maxlen表示高精度數(shù)的長(zhǎng)度,1個(gè)元素能存儲(chǔ)4個(gè)十進(jìn)制位,1000個(gè)元素就存儲(chǔ)4000個(gè)十進(jìn)制位,而加1表示下標(biāo)為0的元素另有它用,常用作存儲(chǔ)當(dāng)前高精度數(shù)字的位數(shù)。二.各種運(yùn)算的程序?qū)崿F(xiàn)(一)加法:首先回顧一下小學(xué)中曾學(xué)習(xí)的豎式加法,見圖一:bignum1[]9475461243bignum2[]9181324341carry1000bignum_ans[]139313701584圖一加法的計(jì)算過程從上面的圖中我們可以得知,做加法運(yùn)算是從低位向高位進(jìn)行,如果有進(jìn)位,下一位進(jìn)行相加時(shí)要加上進(jìn)位,如果最高位已計(jì)算完還有進(jìn)位,就要增加存儲(chǔ)結(jié)果的位數(shù),保存起進(jìn)位來。關(guān)于進(jìn)位的處理,往往定義單獨(dú)變量carry進(jìn)行存儲(chǔ),程序?qū)崿F(xiàn)的過程如圖二所示:初始化初始化進(jìn)位carry賦初始值0,結(jié)果的位數(shù)為兩個(gè)加數(shù)的最大位數(shù)。當(dāng)前位超過最高位了?處理當(dāng)前位和進(jìn)位NY還有進(jìn)位么?N結(jié)束處理進(jìn)位Y圖二加法的實(shí)現(xiàn)過程高精度加法程序代碼(bignum1+bignum2→bignum_ans):voidaddition(int*bignum1,int*bignum2,int*bignum_ans){ intcarry=0; memset(bignum_ans,0,sizeof(bignum_ans));//memset作用是在一段內(nèi)存塊中填充某個(gè)給定的值,它是對(duì)較大的結(jié)構(gòu)體或數(shù)組進(jìn)行清零操作的一種最快方法。 *bignum_ans=*bignum1>*bignu2?*bignum1:*bignum2; for(intpos=1;pos<=*bignum_ans;pos++){ carry+=bignum1[pos]+bignum2[pos]; bignum_ans[pos]=carry%base; carry/=base; } while(carry){ bignum_ans[++*bignum_ans]=carry%base; carry/=base; }}說明:函數(shù)中的數(shù)組是引用傳遞,傳遞的是數(shù)組的首元素的地址,可用指針來代替,當(dāng)前指針?biāo)赶虻臑?元素,后面的代碼相同。有的同學(xué)可能提出,在加法運(yùn)算中的進(jìn)位不管進(jìn)制是多少,進(jìn)位只可能出現(xiàn)1,用while循環(huán)沒有意義,在這里說明一下,為了跟后面乘法中出現(xiàn)的代碼相匹配才采用這種處理方法,實(shí)現(xiàn)代碼的統(tǒng)一性。(二)減法:bignum1[]1329475461243bignum2[]1329181324341borrow0100bignum_ans[]085568722902圖三減法的計(jì)算過程圖三表示出了減法的計(jì)算過程,與加法不同的地方是進(jìn)位變成了借位,另外就是計(jì)算結(jié)果的位數(shù)可能會(huì)比被減數(shù)的位數(shù)少,因此在處理過程中要更要注意結(jié)果到底是多少位的。其次,日常我們做減法時(shí),如果被減數(shù)小于減數(shù),我們是把兩數(shù)反過來進(jìn)行相減,在前面添加負(fù)號(hào)標(biāo)識(shí)。因此,我們?cè)诰帉憸p法子函數(shù)時(shí)是約定bignum1大于bignum2的,調(diào)用時(shí)首先判斷兩個(gè)高精度數(shù)的大小,然后根據(jù)兩數(shù)的大小決定如何調(diào)用。減法的實(shí)現(xiàn)過程如圖四所示:初始化初始化借位borrow賦初始值0,結(jié)果的位數(shù)為被減數(shù)的位數(shù)。當(dāng)前位超過最高位了?處理當(dāng)前位和借位NY結(jié)果高位為0?N結(jié)束結(jié)果位數(shù)減1Y圖四減法的實(shí)現(xiàn)過程高精度數(shù)比較程序代碼:intbignumcmp(int*bignum1,int*bignum2){ if(*bignum1-*bignum2)return*bignum1-*bignum2; for(intpos=*bignum1;pos>0;pos--) if(bignum1[pos]-bignum2[pos])returnbignum1[pos]-bignum2[pos]; return0;}說明:bignum1>bignum2返回正整數(shù),bignum1==bignum2返回0,bignum1<bignum2返回負(fù)整數(shù)。解釋:首先進(jìn)行兩數(shù)的位數(shù)的比較,如果位數(shù)相同再?gòu)母呶幌虻臀槐容^。高精度減法程序代碼(bignum1-bignum2→bignum_ans):voidsubtract(int*bignum1,int*bignum2,int*bignum_ans){ intborrow=0; memset(bignum_ans,0,sizeof(bignum_ans)); *bignum_ans=*bignum1; for(intpos=1;pos<=*bignum_ans;pos++){ bignum_ans[pos]=bignum1[pos]-borrow-bignum2[pos]; if(bignum_ans[pos]<0){ bignum_ans[pos]+=base; borrow=1; }else{ borrow=0; } } while(!bignum_ans[*bignum_ans])--*bignum_ans;}(三)乘法:乘法的計(jì)算過程正如圖五所示的從乘數(shù)的最低位起枚舉每一位與被乘數(shù)相乘,累加到結(jié)果當(dāng)中。高精度乘高精度實(shí)際是多次調(diào)用單精度數(shù)乘高精高數(shù)運(yùn)算。1234X4321(1)1234(2)2468(3)3702(4)49365332114圖五乘法的計(jì)算過程首先看一下單精度數(shù)乘高精度數(shù)的實(shí)現(xiàn)過程,如圖六所示:初始化初始化進(jìn)位carry賦初始值0,結(jié)果的位數(shù)被乘數(shù)的位數(shù)。當(dāng)前位超過最高位了?處理當(dāng)前位和進(jìn)位NY還有進(jìn)位么?N結(jié)束處理進(jìn)位Y圖六單精度乘高精度實(shí)現(xiàn)過程單精度乘高精度程序代碼(n*bignum→bignum_ans):voidSingleMultiply(intn,int*bignum,int*bignum_ans){ intcarry=0; memset(bignum_ans,0,sizeof(bignum_ans); *bignum_ans=*bignum; for(intpos=1;pos<=*bignum_ans;pos++){ carry+=n*bignum[pos]; bignum_ans[pos]=carry%base; carry/=base; } while(carry){ bignum_ans[++*bignum_ans]=carry%base; carry/=base; }}高精度數(shù)乘高精度數(shù),實(shí)質(zhì)就是在單精度數(shù)乘高精度數(shù)的基礎(chǔ)上枚舉各個(gè)乘數(shù)位與被乘數(shù)相乘,累計(jì)到結(jié)果當(dāng)中。其中乘數(shù)中的第J位與被乘數(shù)中的第I位相乘時(shí),結(jié)果應(yīng)該保存到結(jié)果的第I+J-1位中,因?yàn)槿绻嬖谶M(jìn)位的問題結(jié)果的位數(shù)可能為乘數(shù)與被乘數(shù)的位數(shù)和,也可能為兩者位數(shù)和減一,這一點(diǎn)也應(yīng)該單獨(dú)處理。過程就不再展示了,具體的請(qǐng)閱讀下面的程序代碼:高精度乘高精度程序代碼(bignum1*bignum2→bignum_ans):voidBignumMultiply(int*bignum1,int*bignum2,int*bignum_ans){ intcarry=0,i,j; memset(bignum_ans,0,sizeof(bignum_ans)); for(j=1;j<=*bignum2;j++){ for(i=1;i<=*bignum1;i++){ bignum_ans[i+j-1]+=carry+bignum1[i]*bignum2[j]; carry=bignum_ans[i+j-1]/base; bignum_ans[i+j-1]%=base; } i=j+*bignum1; while(carry){ bignum_ans[i++]=carry%base; carry/=base; } } *bignum_ans=*bignum1+*bignum2; while(!bignum_ans[*bignum_ans])--*bignum_ans;}(四)除法:除法在高精度計(jì)算中是最為特殊的,在近幾年聯(lián)賽中并沒有出現(xiàn)類似的題目,除法類的高精度題目會(huì)涉及到精度和循環(huán)節(jié)問題,在這里首先用表格分析兩個(gè)例子:例一:3除以8,結(jié)果為0.375被除數(shù)3306040商0.375余數(shù)3640例二:45除以56,結(jié)果為0.803(571428)被除數(shù)454502020032040080240160480商0.803571428余數(shù)452203240824164832在例一中展示的為能被除盡的情形,能被除盡的條件是余數(shù)為0,而在例二中56并不能除盡45,出現(xiàn)571428這個(gè)循環(huán)節(jié),出現(xiàn)循環(huán)節(jié)的條件是當(dāng)前的余數(shù)曾經(jīng)出現(xiàn)在前面求得的余數(shù)序列中。直接模擬除法操作進(jìn)行程序設(shè)計(jì)的過程如圖七所示:初始化初始化商存儲(chǔ)數(shù)組quotient[]清零,余數(shù)數(shù)組remainder[]清零。余數(shù)為0?處理當(dāng)前位NY結(jié)束輸出整除值,存儲(chǔ)余數(shù)余數(shù)序列中出現(xiàn)過么?處理循環(huán)節(jié)YN圖七高精度除法實(shí)現(xiàn)過程根據(jù)上述處理過程編寫代碼如下:voiddivide(intx,inty){ intremainder[maxlen],quotient[maxlen],repeat_pos=-1,pos=0; quotient[0]=x/y; remainder[0]=x%y; while(remainder[pos]){ for(inti=0;i<pos;i++)//查找余數(shù)序列 if(remainder[i]==remainder[pos]){repeat_pos=i;break;} if(repeat_pos>-1)break; pos++; if(pos==maxlen){pos--;break;}//是否已到求解的精度 remainder[pos]=remainder[pos-1]*10%y; quotient[pos]=remainder[pos-1]*10/y; } cout<<quotient[0]; if(remainder[0]){ cout<<'.'; inti=1; if(repeat_pos>-1){ for(i=1;i<=repeat_pos;i++)cout<<quotient[i]; cout<<'('; } while(i<=pos)cout<<quotient[i++]; if(repeat_pos>-1)cout<<')'; } cout<<endl;}說明:maxlen為指定的精度或最大的小數(shù)位數(shù)加一,根據(jù)程序需要而定義。從上面的程序可以看出,在求得每一個(gè)余數(shù)后,都要到前面的余數(shù)序列中查找是否已存在,來判定是否出現(xiàn)循環(huán)節(jié),這種方法即費(fèi)時(shí)又浪費(fèi)空間。有沒有更好的方法來解決這個(gè)問題呢?我們從數(shù)學(xué)上的自然數(shù)找一下規(guī)律。任何一個(gè)自然數(shù)都可拆分為若干質(zhì)數(shù)的冪的形式(n=p1K1*p2K2…pnKn),在所有的質(zhì)數(shù)中,只有2和5才能被除盡,其他的均出現(xiàn)循環(huán)節(jié)。我們是否可以從2和5上找出解決方法來呢?將被除數(shù)和除數(shù)轉(zhuǎn)化為互質(zhì)的兩個(gè)數(shù),從除數(shù)中統(tǒng)計(jì)出2和5的個(gè)數(shù)n2和n5,且一個(gè)2和一個(gè)5都僅產(chǎn)生一位小數(shù),這些小數(shù)是肯定不出現(xiàn)在循環(huán)節(jié)中的。反過來說,在小數(shù)點(diǎn)后面,循環(huán)節(jié)前面小數(shù)的位數(shù)就是n2和n5中的較大者。如果求解出循環(huán)節(jié)前的小數(shù)以后,余數(shù)仍不為0,那就存在著循環(huán)節(jié)了,循環(huán)節(jié)的長(zhǎng)度為再次得到的這個(gè)余數(shù)。請(qǐng)看下面的代碼:小數(shù)點(diǎn)后循環(huán)節(jié)前的位數(shù)程序代碼:intnumBeforeRepeat(intx,inty){ intn2=0,n5=0; while(y%2==0){n2++;y/=2;} while(y%5==0){n5++;y/=5;} while(x%2==0){n2--;x/=2;} while(x%5==0){n5--;x/=2;} if(n2<n5)n2=n5; returnn2>0?n2:0;}高精度除法程序代碼:voiddivide(intx,inty){ intBeforeRepeat=numBeforeRepeat(x,y); cout<<x/y; x%=y; if(x){ cout<<'.'; for(inti=0;i<BeforeRepeat;i++){ x*=10; cout<<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論