首页 > 代码库 > UVa 10515 - Powers Et Al.
UVa 10515 - Powers Et Al.
题目:计算n^m 的最后一位。
分析:数论。结果的最后一位,只与n最后一位有关,而0~9的幂都是以2或4为循环周期的。
计算m模4的余数r和n的尾数k,则k^r就是结果。
说明:其实也可以用快速幂,不过这个更快(⊙_⊙)。
#include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> using namespace std; int value[10][4] = { 0,0,0,0, 1,1,1,1, 6,2,4,8, 1,3,9,7, 6,4,6,4, 5,5,5,5, 6,6,6,6, 1,7,9,3, 6,8,4,2, 1,9,1,9}; int main () { char a[104],b[104]; while (scanf("%s%s",a,b) && (strcmp(a,"0")||strcmp(b,"0")) ) { if ( !strcmp(b, "0") ) { printf("1\n"); continue; } int v = b[strlen(b)-1]-'0'; if ( strlen(b) > 1 ) v += (b[strlen(b)-2]-'0')*10; printf("%d\n",value[a[strlen(a)-1]-'0'][v%4]); } return 0; }
UVa 10515 - Powers Et Al.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。