昨天睡觉前在做二分图匹配,睡醒后突然想到了二分幂,然后就写了下,还真给写出来了,权当做模板吧。。。
#include <stdio.h>
int js(int n,int xh)
{
int sum = 1;
for(int i = 0; i < xh; i++)
{
sum *= n;
}
return sum;
}
int main()//输入的数据是两个数分别是n,m,结果是n^m(m >= 0)
{
int n,m,sum,cnt;
while(scanf("%d%d",&n,&m),n || m)
{
sum = 1;
cnt = 0;
while(m != 0)
{
sum *= js(n,(m & 1) * (1 << cnt));
m >>= 1;
cnt++;
}
printf("%d\n",sum);
}
return 0;
}
最新模板:
#include <stdio.h>
int fz(int x,int y)
{
int sum = 1;
for(int i = 0;i < y;i++)
{
sum *= x;
}
return sum;
}
int js(int n,int m)
{
int sum = 1,cnt = 1;
while(m)
{
sum *= fz(n,(m & 1) * cnt);
m >>= 1;
cnt <<= 1;
}
return sum;
}
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
printf("%d\n",js(n,m));
}
return 0;
}