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

double my_pow(const double number, int n)
{
	assert(number);
	if (n > 0)
	{
		return number*my_pow(number, n - 1);
	}
	else if (n < 0)
	{
		return (1 / number)*my_pow(number, n + 1);
	}
	else
		return 1;
}
int main()
{
	double n = 0.0;
	int k = 0;
	printf("请输入n^k:\nn = ");
	scanf("%lf", &n);
	printf("k = ");
	scanf("%d", &k);
	printf("%lf^%d的结果为%lf\n", n, k, my_pow(n, k));
	system("pause");
	return 0;
}