曾 紅
四川省自貢市第一人民醫(yī)院計(jì)算機(jī)中心,四川自貢 643000
通常我們的計(jì)算機(jī)在計(jì)算一個(gè)數(shù)的n次方時(shí),當(dāng)數(shù)值稍大一點(diǎn),就會(huì)用科學(xué)計(jì)數(shù)法輸出結(jié)果,引起數(shù)值不精確,比如:123140=3.86114×10292,如果結(jié)果再大些還會(huì)顯示溢出,1234150。本文通過(guò)數(shù)組,采用累加的算法實(shí)現(xiàn)了一個(gè)數(shù)的n次方的精確計(jì)算。
累加的實(shí)際n次方的原理:
1232=123×123=123個(gè)123相加;
1233=123×123×123=(123個(gè)123相加)×123。
為了實(shí)現(xiàn)精確計(jì)算,我們把輸入數(shù)的每一位數(shù)字分別存放到組數(shù)中,如:輸入數(shù)123,則s(3)=1, s(2)=2, s(1)=3
采用數(shù)組分散存放計(jì)算中間值和結(jié)果,實(shí)現(xiàn)了每一位的精確運(yùn)算,也不會(huì)產(chǎn)生數(shù)值溢出的錯(cuò)誤。
以下是本算法運(yùn)行的結(jié)果:
運(yùn)行結(jié)果:
請(qǐng)輸入一個(gè)整數(shù):123
請(qǐng)輸入次方:300
共有位數(shù):627
[1]章立民.FoxPro命令與函數(shù)實(shí)用詳解.學(xué)苑出版社,1994.
[2]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].清華大學(xué)出版社,1997,4:1S.