分治算法。
/*
* TYVJ-1119
* mike-w
* 2012-9-29
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
const __int64 mod=1012;
__int64 foo(__int64 a, __int64 b)
{
if(b==0)
return 1;
else
{
int t=foo(a, b/2);
return (b&0x1)?(t*t*a%mod):(t*t%mod);
}
}
int main(void)
{
__int64 a, b;
int n;
scanf("%d", &n);
while(n-->0)
{
scanf("%I64d%I64d", &a, &b);
printf("%I64d\n", foo(a, b));
}
return 0;
}
本文通过一个具体的分治算法实现示例,展示了如何利用递归思想解决幂运算问题。该算法能够有效地处理大数的幂运算,通过将问题分解为更小的子问题来降低复杂度。

2301

被折叠的 条评论
为什么被折叠?



