设为首页 加入收藏

TOP

HDU 1061 Rightmost Digit题解
2015-07-24 05:56:31 来源: 作者: 【 】 浏览:9
Tags:HDU 1061 Rightmost Digit 题解

求一个大数N^N的值的最右边的数字,即最低位数字。

简单二分法求解就可以了。

不过注意会溢出,只要把N % 10之后,就不会溢出了,不用使用long long。


#include 
  
   
int rightMost(int n, int N)
{
	if (n == 0) return 1;
	int t = rightMost(n / 2, N);
	t = t * t % 10;;
	if (n % 2) t *= N;
	return t % 10;
}

int main()
{
	int T, n;
	scanf("%d", &T);
	while (T--)
	{
		scanf("%d", &n);
		printf("%d\n", rightMost(n, n%10));
	}
	return 0;
}
  



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇poj 1721 CARDS(置换) 下一篇hi3531 SDK已编译文件系统制作jff..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: