递归法:
#include<stdio.h>
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<stdio.h>
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;
}