试题 算法训练 A的B的C次方次方
Posted ~晚风微凉~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了试题 算法训练 A的B的C次方次方相关的知识,希望对你有一定的参考价值。
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
//据说很多人的题目会有一大堆废话,本傻×就不在这里废话了。
就是叫你算A的B的C次方次方。
当然了,为了方便起见,把答案%1,000,000,007输出就好。
输入格式
一行,三个整数A,B,C,以空格隔开。
输出格式
输出A的B的C次方次方%1,000,000,007。
样例输入
3 4 5
样例输出
763327764
数据规模和约定
0≤A,B,C≤1,000,000,000
标签:取模问题一直没弄清,这次好好弄下
快速幂与取模(同时)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1000000007;
ll exp_mod(ll a,ll n,ll b)
ll t;
if(n==0)return 1%b;
if(n==1)return a%b;
t=exp_mod(a,n/2,b);
t=(t%b)*(t%b)%b;
if((n&1)==1)t=(t%b)*(a%b)%b;
return t;
int main()
ll a,b,c;
scanf("%lld %lld %lld",&a,&b,&c);
ll tmp=0;
tmp=exp_mod(a,exp_mod(b,c,mod-1),mod);
printf("%lld",tmp);
return 0;
注意点:
1.a的b的c次方,求解顺序不能错
2.因为费马小定理中有一条:
所以,在第一次调用exp_mod函数的时候,需要取模mod-1(根据上书定理可得证)
以上是关于试题 算法训练 A的B的C次方次方的主要内容,如果未能解决你的问题,请参考以下文章
C语言试题108之打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153 是一个“水仙花数”,因为 153=1 的三次方+5 的三次方+3 的三次方。
C语言蓝桥杯年龄的三次方是四位数,四次方是六位数,是个数正好包含0到9,猜年龄是多少