题目描述
小学题目,给定除数和被除数,求余数。
不过这次的除数n的形式被表示为个n=aaa⋯⏟b个
输入
第一行包含一个整数T,代表测试数据的组数,每组数据包含三个整数a,b,k,其中k为被除数。
输出
对于每组测试数据,输出n mod k
样例输入
2
3 5 17
5 7 233
样例输出
13
136
注释:只要将算式化成a^b mod c的形式,直接套模板就行,快速幂算法的基本原理还是而二进制,将a^b分解成几个由a^(pow(2,x))的乘积组成。x从0开始。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll quickpower(ll k,ll b,ll mod){
ll res=1;
while(b){
if(b&1)res=res*k%mod;
k=k*k%mod;
b>>=1;
}
return res;
}//快速幂模板(k^b%mod)
int main(){
int t;
ll a,b,k;
cin>>t;
while(t--){
cin>>a>>b>>k;
int w=(9)*k;
cout<<((a*quickpower(10,b,w)-a%w)%w/(9))<<endl;
}
}