求n的k次方

求n的k次方_第1张图片

递归法:

#include
int mi(int n, int k)
{
	if (k == 1)   //如果是1次方
	{
		return n;  //返回n的1次方(也就是n)
	}
	else
	{
		return n * mi(n, k - 1);   //n*n的k-1次方
	}
}
int main()
{
	int n = 0, k = 0, sum = 0;
	printf("请输入n值和k值\n");
	scanf("%d%d", &n, &k);
	sum = mi(n, k);
	printf("%d的%d次方的值为%d\n", n, k, sum);
	return 0;
}

非递归法:

#include
int mi(int n, int k)
{
	int i = 0, sum = 1;   //sum的初始值要为1,不能为0,不然0*任何数还是0
	for (i = 0; i < k; i++)    //循环k次
	{
		sum *= n;   //每循环一次就*n,
	}
	return sum;   //返回n的k次方的值
}
int main()
{
	int n = 0, k = 0, sum = 0;
	printf("请输入n值和k值\n");
	scanf("%d%d", &n, &k);
	sum = mi(n, k);
	printf("%d的%d次方的值为%d\n", n, k, sum);
	return 0;
}

求n的k次方_第2张图片

你可能感兴趣的:(c语言)