1. 程式人生 > >HDOJ 2035 人見人愛A^B(快速冪求模)

HDOJ 2035 人見人愛A^B(快速冪求模)

Description

求A^B的最後三位數表示的整數。 
說明:A^B的含義是“A的B次方” 

Input

輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<=A,B<=10000),如果A=0, B=0,則表示輸入資料的結束,不做處理。

Output

對於每個測試例項,請輸出A^B的最後三位表示的整數,每個輸出佔一行。 

Sample Input

2 3 12 6 6789 10000 0 0

Sample Output

8 984 1 程式碼:
#include<stdio.h>
#include<math.h>
int pow(int a,int b)
{
	long long ans=1,base=a;
	while(b>0)
	{
		if(b&1)
		  ans=(ans*base)%1000;
		b>>=1; 
		base=(base*base)%1000;
	}
	return ans;
}
int main()
{
	int a,b;
	while(scanf("%d%d",&a,&b)&&(a||b))
	{
		int ans;
		ans=pow(a,b);
		printf("%d\n",ans);
	}
	return 0;
}


相關推薦

HDOJ 2035 A^B(快速

Description 求A^B的最後三位數表示的整數。  說明:A^B的含義是“A的B次方”  Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1&

HDU 2035 A^B 快速

分析: 標配快速冪。注意取模別溢位即可。 程式碼如下: #include <stdio.h> // 快速冪非遞迴實現(迴圈+位運算) int power2(int a, int n

hpuvj【1575】Tr A快速模板題

Tr A Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Descripti

HDU 2035 A^B快速

人見人愛A^B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su

hdoj 2035A^B 解題報告

Problem Description 求A^B的最後三位數表示的整數。 說明:A^B的含義是“A的B次方” Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<=A,B<=10000),如果A=0, B=0,則表示輸入資

HDOJ 2035 A^B快速

人見人愛A^B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total

hdu 2035 A^B

seve 程序 ron esc 組成 pid tdi other nbsp Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi

HDU-2035A^B

HDU-2035人見人愛A^B 題目: 求A^B的最後三位數表示的整數。 說明:A^B的含義是“A的B次方” Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<=A,B<=10000),如果A=0, B=0,則表示輸入資料的結束,不做處理。 Out

HDU 2035 A^B(同餘基本性質

原題連結:Here!思路:可以利用同餘的基本性質 ab ≡ (a%m)(b%m) (mod m) ,也非常好證明。  設 a = k1*m + c1 , b = k2*m + c2 ( k1,k2

hdu 2035 A^B快速入門

人見人愛A^B                                      Time Limit: 2000/1000 MS (Java/Others)    Memory Limit

HDU 2035 A^B(水~

Description 求A^B的最後三位數表示的整數。 Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<=A,B<=10000),如果A=0, B=

2035 ——A^B

#include <iostream> using namespace std; int main() { int n,m; while(cin>>n>>m) { int c=1;

2035 A^B

人見人愛A^B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 21701    Accepted Sub

HDOJ】2034 -> A-B

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=2034 #include <iostream> #include <set> #include <algorithm> #include &

杭電 2035 ( A^B ) java

import java.util.Scanner; import java.math.BigInteger; public class Main { public static void

hdu 2035 A^B快速

Problem Description 求A^B的最後三位數表示的整數。 說明:A^B的含義是“A的B次方” Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<=A,B<=10000),如果A=0, B=0,則

HDOJ--2034 A-B

2 3 NULL注意:從小到大按順序輸出。 import java.util.Scanner; public class Gether { public static void main(String[] args) { Scanner sc =new Scanner(System.in);

【杭電2035A^B

#include<stdio.h> __int64 quick(int a,int b) { __int64 ans=1,base=a; __int64 t=0;

杭電2035 A^B

Problem Description 求A^B的最後三位數表示的整數。 說明:A^B的含義是“A的B次方” Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<

2035——A^B

Problem Description 求A^B的最後三位數表示的整數。 說明:A^B的含義是“A的B次方” Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<=A,B<=10000),如果A=0, B=0,則表示輸入資