/***********************************************************************
目的:递归实现n的k次方
分析:k = 0 -> 1
k > 0 -> n * my_pow(n, k - 1)
k < 0 -> n * my_pow(n, -k)
平台:Visual studio 2017 && windows
*************************************************************************/
实现代码:
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> double my_pow(int n, int k) { if(0 == k) return 1.0; else if(k > 0) return n * my_pow(n, k -1); else return 1.0 / (my_pow(n, -k)); } int main() { int n = 0; int k = 0; scanf("%d %d", &n, &k); double ret = my_pow(n, k); printf("%lf\n", ret); return 0; }