C言語 - nのk乗の再帰実装

  1. 分析する

ここでは、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 乗


  1. コード
#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;
}

おすすめ

転載: blog.csdn.net/outdated_socks/article/details/129306926
おすすめ