分析する
ここでは、n と k の整数の場合のみを説明します。
分類の議論 - k を 3 つのケースに分割する
①k>0
例: 2 の 5 乗 - 2*2*2*2*2 は 2*2 の 4 乗です
②k=0
n が 0 に等しくない限り、結果は 1 になります。
③k<0
例: 2 の -5 乗 - 1 の 2 の 5 乗
コード
#include<stdio.h>
double fun(int n, int k)
{
if (0 == k&&n!=0) return 1;
else if(0==k&&0==n) printf("此情况不存在\n");
else if (k > 0) return n * fun(n, k - 1);//k
else return 1.0/ fun(n, -k);
}
int main()
{
int n = 0, k = 0;
scanf("%d%d", &n, &k);
printf("%lf\n", fun(n, k));
return 0;
}