高精度冪的計算

2021-07-27 21:13:46 字數 835 閱讀 9573

#include

#include

#include

using namespace std;  

int s;  

void chen(char a,char b)//a=a*b      //高精度乘法

;    

l=strlen(a)+strlen(b);    

for(i=strlen(b)-1;i>=0;i--)    

for(j=strlen(a)-1,k=i+j+1;j>=0;j--,k--)    

for(i=c[0] ? 0:1,j=0;ia[j]=0;    

}    

void quw0(char a) //去除尾部多餘的零   //初始化b

} void jilu(char a)  //處理小數點,記錄位置

//將n和分為0和非0,如果是0,直接輸出1

s=0;  //s為記錄小數點的位置,為全域性變數

quw0(b);//初始化,把輸入的b後面的多餘的0去除

jilu(b);  //講小數化為整數,為後面的高精度乘法做準備

strcpy(a,b);  //用乙個新的陣列a等效於b,例如b^3=b*b*b=(a*b)*b=(a『)*b;3個b相乘,

for(int i=2;i<=n;i++)   //就是實現(a*b),然後用a在儲存a*b的結果

chen(a,b);  //這個函式等效於a=a*b;

s*=n; //結果的小數字數   

show(a);  //輸出結果,處理小數點

}   

return 0;  

}

高精度冪的計算

題目參考北大onlie judge 1001題,由於不知道對於整數的相關輸入要求,如果輸入整數進入高精度冪的運算的話,預設為6.0000 or 12.000 格式。對乙個實數r 0.0 r 99.999 要求寫程式精確計算 r 的 n 次方 rn 其中n 是整數並且 0 n 25。限時0.5s 高精...

高精度 高精度冪

時間限制 1 sec 記憶體限制 64 mb 題目描述 經過測試,修羅王發現開啟魔法手銬的方法是需要求乙個正整數a 1輸入 包含兩個數字,即a和n。輸出輸出結果的最後1000位。複製樣例資料 2 10樣例輸出 1024注意c陣列不能只取1000為萬一第1000為為0不就捨掉了,到最後在輸出1000位...

快速冪 高精度求冪

本文講述快速冪的原理,以及用法 定義 快速求,取base為底數的exp次冪,即求 baseexp 時間複雜度 o log n 思想 每一步都把指數分成兩半,而相應的底數做平方運算。不僅能把非常大的指數給不斷變小,所需要執行的迴圈次數也變小,而最後表示的結果卻一直不會變。原理 a b m a m b ...