V2.0
1.修复无法计算负数次方的BUG
2.提高结果精度
V1.0程序:
编写一个函数实现n^k,使用递归实现
#include <stdio.h>
int NK(int n, int k)
{
int out;
if(k==0)
return 1;
out=n*NK(n,k-1);
return out;
}
int main()
{
int n,k,out;
printf("本程序计算n^k的结果,请输入n和k:>");
scanf("%d%d",&n,&k);
out=NK(n,k);
printf("n^k的结果是%d",out);
return 0;
}
V2.0程序:
函数内部添加判断k<0的分支
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
double Pow(int n, int k)
{
//n^k=n*n^(k-1)
if (k < 0)
return (1.0 / (Pow(n, -k)));
else if (k == 0)
return 1;
else
return n * Pow(n, k - 1);
}
int main()
{
int n = 0;
int k = 0;
printf("本程序计算n^k的结果,请输入n和k:>\n");
scanf("%d%d", &n, &k);
double ret = Pow(n, k);
printf("ret=%lf\n", ret);
return 0;
}