TYVJ 1119 a^n2 解题报告

  类似于二分的算法吧,看代码:

#include <stdio.h>
#include <stdlib.h>

int pow_(int a, int b)
{
	if(b == 0){
		return 1;
	}
	if(b & 1){
		return (pow_((a * a) % 1012, b / 2) * a) % 1012;
	}else{
		return pow_((a * a) % 1012, b / 2) % 1012;
	}
}

int main(int argc, char **argv)
{
	int n;
	int a, b;
	scanf("%d", &n);
	while(n--){
		scanf("%d%d", &a, &b);
		printf("%d\n", pow_(a, b));
	}
	return 0;
}

  

posted @ 2011-08-07 17:35  zqynux  阅读(129)  评论(0编辑  收藏  举报