问题:
编写一个函数实现n^k,使用递归实现
基本思路:
编写函数pow(n,k)用来求n^k.
此问题可以分解为n^k 就是n*n^(k-1);
n乘n的k-1次方就是n乘n乘n的k-2次方;
······
在函数体中先判断k是否为0,如果是0返回1;
如果不是返回的值为递归调用pow()函数进行 n * pow(n, k - 1)。
代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int pow(int n, int k){
if (k == 0){
return 1;
}
return n * pow(n, k - 1);
}
int main(){
printf("输入一个整数n:");
int n = 0;
scanf("%d", &n);
printf("输入次方k:");
int k = 0;
scanf("%d", &k);
printf("n的k次方是:%d\n", pow(n, k));
system("pause");
return 0;
}