算法2题解(分治)未完成

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);
}
1 个赞