A. 递归版快速幂
题目描述
给定 x,y,z,求
x∗x∗x∗…∗x (共y 个x) 在对 z 取模意义下的值。
输入格式
三个整数 x,y,z 。
输出格式
一个整数表示答案。
思路:基本没有,用函数硬算
AC code
#include<bits/stdc++.h>
using namespace std;
long long f(long long x, long long y, long long z) { //求y个x相乘
if (y==1) {
return x;
}
if (y % 2) {
return f(x, y / 2, z) * f(x, y / 2, z) % z * x % z;
}
else
return f(x, y / 2, z) * f(x, y / 2, z) % z;
}
typedef long long ll;
int main() {
ll x, y, z;
cin >> x >> y >> z;
cout << f(x, y, z);
}