如何做垂直网站,做模板网站的公司,形象标识设计,烟台h5网站制作公司小明解密码
题目大意
让你计算n^m的个位#xff08;有t组数据#xff09;
样例输入
2
3 4
4 5
样例输出
1
4
数据范围限制
对于30#xff05;的数据#xff0c;1≤t≤20#xff0c;1≤n,m≤8
对于100#xff05;的数据#xff0c;1≤t≤1000#xff0c;1≤…小明解密码
题目大意
让你计算n^m的个位有t组数据
样例输入
2
3 4
4 5
样例输出
1
4
数据范围限制
对于30的数据1≤t≤201≤n,m≤8
对于100的数据1≤t≤10001≤n,m≤10^10
解题方法
这题其实有两种方法一种是运用个位的规律直接得出结果这里我就不详细说明了另一种是我们一想就可以想到的“幂”但从数据m101010^{10}1010可以得知我们要用快速幂注意输入要用long long因为101010^{10}10102147483647
快速幂
就是将一个幂的指数分成两份如n10n^{10}n10n5n^{5}n5×n5n^{5}n5因为都是10个n相乘但当指数为奇数时就要多成一个n如n11n^{11}n11n5n^{5}n5×n5n^{5}n5×n
#includecstdio
#includeiostream
using namespace std;
int t;
long long n,m,ans;
void ksm(long long x)
{if (x1)//判断是否为一次方{ansn;//一次方即为本身return;}ksm(x/2);//指数除以2long long d1;if (x1) dn;//如果x为奇数多乘一个nans(ans*ans*d)%10;//相乘
}
int main()
{scanf(%d,t);//数据的组数for (int i1;it;i){scanf(%lld %lld,n,m);n%10;//求各位ksm(m);//快速幂printf(%lld\n,ans);//输出}return 0;
}