1224 个位数

2024-01-09 23:46:05

描述

计算?ab?的个位数。

输入描述

一行两个空格隔开的正整数表示?a?和?b。

输出描述

输出?a^b?的个位数。

样例输入 1?

2 4

样例输出 1?

6

提示

数据范围与提示

1≤a,b≤10^5

题解

这个题容易出的问题就是大数溢出,因为a的范围是大于等于1,那么如果我们a给的是1000000111111111111,就已经超出int和long long了,你用什么都没办法,这样就只能先把个位拿出来,然后每次只乘个位,相当于就是个位那个数字,做b次循环,但是,我们要注意如果个位是9,我们的b是99999,还是可能会溢出,那么我们每次乘完之后还要对res进行取余,让res始终保持数量不大。

#include<bits/stdc++.h>
using namespace std;

int main(){
	long long int a,b;
	cin >> a >> b;
	long long int res = 1;
	int ge = a%10;
	for(int i = 0;i < b;i ++){
		res *= ge;
		res %= 10;
	}
	cout << res%10;
}

文章来源:https://blog.csdn.net/L6666688888/article/details/135491103
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。