码迷,mamicode.com
首页 > 其他好文 > 详细

杭电ACMOJ 人见人爱A^B Easy *第一次见到快速幂取模

时间:2020-03-09 13:51:23      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:long   namespace   快速幂取模   std   res   void   out   include   car   

基本思想:

快速幂取模,如果不去模,就是快速幂大数问题;

 

关键点:

无;

 

#include<iostream>
#include<string>
using namespace std;
typedef long long ll;
string s;

//int f[maxn];


void multip(string &s, int n) {
	int carry = 0;
	for (int i = 0; i < s.size(); i++) {
		int temp = carry  + (s[i] - ‘0‘)*n;
		s[i] = temp % 10 + ‘0‘;
		carry = temp / 10;
	}
	while (carry != 0) {
		s += char(‘0‘ + carry % 10);
		carry /= 10;
	}
}

int charge(int n,int m) {
	int base = n;
	int res = 1;
	while (m != 0) {
		if (m % 2 !=0) {
			res = res * base;
			res %= 1000;
		}
		base *= base;
		base %= 1000;
		m /= 2;
	}
	return res;
}

int main() {
	int n, m;
	while (cin >> n >> m) {
		if (n == 0 && m == 0)
			break;
		cout << charge(n, m) << endl;
	}
	return 0;
}

  

杭电ACMOJ 人见人爱A^B Easy *第一次见到快速幂取模

标签:long   namespace   快速幂取模   std   res   void   out   include   car   

原文地址:https://www.cnblogs.com/songlinxuan/p/12448136.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!