POJ 1001 求高精度冪

2021-06-03 04:58:12 字數 1043 閱讀 8770

題目描述:對數值很大、精度很高的數進行高精度計算是一類十分常見的問題。比如,對國債進行計算就是屬於這類問題。 

現在要你解決的問題是:對乙個實數r( 0.0 < r < 99.999 ),要求寫程式精確計算 r 的 n 次方(r

n),其中n 是整數並且 0 < n <= 25。

解題思路:很簡單的一道高精度題目。話不多說直接上**,過程被寫得複雜啦,有很大的改進空間。

#include #include using namespace std;

string multiple(string a, string b) //計算兩高精度數乘積

if(remain != 0)

int tmp = 0;

int m = result.length() - (a.length() - i);

int n = str.length() - 1;

remain = 0;

while(m >= 0 && n >= 0)

while(m >= 0)

while(n >= 0)

if(remain != 0)

}return result;

}int main()

int num = str.length() - pos;

if(n == 1) //計算str表示的數的n次冪

else

}if(pos == string::npos)

int c = num * n;

i = res.length() - 1;

string s = "";

while(c > 0 && i >= 0)

s = "." + s;

for(j = 0; j <= i; j++)

}for(i = s.length() - 1; i >= 0; i--)

else

}if(s[s.length() - 1] == '.')

cout << s << endl;

} return 0;

}

POJ 1001 求高精度冪 大數乘法系列

題目描述 對乙個實數r 0.0 r 99.999 要求寫程式精確計算 r 的 n 次方 rn 其中n 是整數並且 0 n 25。輸入資料中每行1 6列為r的值,n的值為8 9列。對於輸出答案,需要去除無用的前導0和後續0。整數的話不要輸出小數點。這是乙個高精度乘法的問題,只是比普通的大數乘法多了小數...

POJ 1001 高精度乘法

必須去掉前導0和後導0,乙個特殊資料是對000.00這樣的輸出0 include includeusing namespace std int main while n 2 如果小於2直接輸出 for int i 0 i dianwei i 從左往右去掉0 int lastindex 1 for i...

POJ 1001 高精度乘法

必須去掉前導0和後導0,乙個特殊資料是對000.00這樣的輸出0 include includeusing namespace std int main while n 2 如果小於2直接輸出 for int i 0 i dianwei i 從左往右去掉0 int lastindex 1 for i...