題目:
小明是個小學五年級的學生,為了早點去看自己愛看的**,他想快點把作業做完。可是可惡的數學老師今天卻布置了一道難題,小明想了很久也不知道該怎麼做。你的任務就是幫小明解決掉這道數學題。
題目是這樣子的,有乙個整數a(
-2^31<= a < 2^31-1
),計算它的整數冪
a^n,其中
1<=n<=99
。第一行是乙個整數
k,表示有多少個測試用例,以後每行乙個測試用例,每行有兩個整數a,
n。每行輸出乙個測試用例的結果。
23 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...