码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 10515 - Powers Et Al.

时间:2014-08-23 17:48:01      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:blog   os   io   ar   2014   log   amp   sp   on   

题目:计算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.

标签:blog   os   io   ar   2014   log   amp   sp   on   

原文地址:http://blog.csdn.net/mobius_strip/article/details/38779329

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!