1037. 个位数 (Standard IO)
时间限制: 1000 ms 空间限制: 262144 KB 具体限制
题目描述
计算ab的个位数。
输入
一行两个空格隔开的正整数表示a和b。
输出
输出ab的个位数。
样例输入
2 4
样例输出
6
数据范围限制
1<=a,b<=100000
----------------------------------------------------------------------
问题分析
这个问题有几个坑:
1.把题目本身有问题 a^b 写成 ab
2.这是一个幂运算的题,让人很容易使用pow函数来运算,但是会因为指数较大时产生数的溢出。
3.用for 循环去完成幂运算与用函数没有差别
换一种思路,因为结果只要个位数,所以,可以把每次相乘的结果取个位数再去相乘。
程序代码
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long long a,b,k;
cin >> a >> b;
k = a;
for(int i=2;i<=b;i++)
{
k *= a;
k %= 10;
}
cout << k%10;
return 0;
}