首页 > 代码库 > HDU 1061 Rightmost Digit题解
HDU 1061 Rightmost Digit题解
求一个大数N^N的值的最右边的数字,即最低位数字。
简单二分法求解就可以了。
不过注意会溢出,只要把N % 10之后,就不会溢出了,不用使用long long。
#include <stdio.h> 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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。