方法一:递归调用
#include<stdio.h>
#include<stdlib.h>
int Mypow(int x, int y)
{
int result = 0;
int tmp = 0;
if (y == 0) return 1;
if (y == 1) return x;
tmp = Mypow(x, y / 2);
if ((y & 1)== 0)
{
result = tmp * tmp;
}
else
{
result = x * tmp * tmp;
}
return result;
}
int main()
{
int ret = Mypow(2,9);
printf("%d\n", ret);
system("pause");
return 0;
}
方法二:相乘
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int Mypow(int x, int y)
{
int m = x;
y--;
while (y>0)
{
m *= x;
y--;
}
return m;
}
int main()
{
int ret = Mypow(3,3);
printf("%d\n", ret);
system("pause");
return 0;
}