大數求冪運算

2021-06-11 20:24:02 字數 1232 閱讀 9379

題目:

小明是個小學五年級的學生,為了早點去看自己愛看的**,他想快點把作業做完。可是可惡的數學老師今天卻布置了一道難題,小明想了很久也不知道該怎麼做。你的任務就是幫小明解決掉這道數學題。

題目是這樣子的,有乙個整數a(

-2^31<= a < 2^31-1

),計算它的整數冪

a^n,其中

1<=n<=99

。第一行是乙個整數

k,表示有多少個測試用例,以後每行乙個測試用例,每行有兩個整數a,

n。每行輸出乙個測試用例的結果。 

2 

3 5-2 5

243

-32

#include#includeusing namespace std;

const int size=1000; //大數字數

char a[size+1]; //儲存大數

char a2[size+1]; ///暫存負的值

char ans[size*size+1]; //儲存結果

void mult(char* a,char* b,char* ans)

; int b[size+1]=;

int pa=0,pb=0;

int c[2*size+1]=;

int i,j;

int lena=strlen(a);

int lenb=strlen(b);

for( i=lena-1;i>=0;i--)

a[pa++]=a[i]-'0';

for( j=lenb-1;j>=0;j--)

b[pb++]=b[j]-'0';

for(pb=0;pb=0;pb--)

if(sign)

ans[pa]='\0';

else

return;

}int main()

{ int t,b,len;

int i,j;

cin>>t;

while(t--)

{ cin>>a>>b;

ans[0]='1';

ans[1]='\0';

if(a[0]!='-')

{ for(i=1;i<=b;i++)

mult(a,ans,ans);

cout<

注意:在求解過程中,注意有符號的變化,當輸入負數時,奇次冪為奇數,偶次冪為偶數!

大數冪運算

大數冪運算 源於poj1001題目 http acm.pku.edu.cn judgeonline problem?id 1001 mul singleint const string s1 int n 2.迴圈利用大整數加法計算大整數乘積 string mul int const string s...

大數運算 冪次方運算

以下演算法計算n的m次方 m的定義域是 1,2 31 n的定義域是 0,65535 原理就是按位相乘,處理進製 include include include void main void std vectorvecnum 1,n 用vector儲存大數,首位賦n for int i 0 i m 1...

大數處理之二(冪運算)

對於冪運算來說,就是相同的幾個數相乘,改成大數處理問題,同樣可以轉化成兩個大數相乘問題,乘得的積作為乙個新數,再用這個新數與另乙個作積,這樣迴圈下去即可進行冪運算。對於兩個大數該如何處理 對於字串s1 100 中存放第乙個大數,s2 100 中存放第二個大數 定義兩個整型陣列 a 100 b 100...