最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
C语言循环与递归实现整数幂函数
时间:2022-06-25 04:54:14 编辑:袖梨 来源:一聚教程网
递归在C 关于递归中讲过了一些知识,但是在写的时候我还是遇到了一些麻烦,而普通的循环却比较好想。
先来看看普通的版本:
代码如下 | 复制代码 |
#include double power(double n, double p); int main(void) { double n, p; printf("Please input the number you need to power: "); scanf("%lf", &n); printf("Please input the number of power:"); scanf("%lf", &p); printf("The answer is %f", power(n, p)); return 0; } double power(double n, double p) { int i; double pow = 1.0; if (n == 0) pow = 0; if (p == 0) pow = 1; else if (p < 0) for (i = 1; i <= -p; i++) pow /= n; else if(p > 0) for (i = 1; i <= p; i++) pow *= n; return pow; } |
然后看看递归是怎么搞的:
代码如下 | 复制代码 |
#include double power(double n, double p); int main(void) { double n, p; printf("Please input the number you need to power: "); scanf("%lf", &n); printf("Please input the number of power:"); scanf("%lf", &p); printf("The answer is %f", power(n, p)); return 0; } double power(double n, double p) { if (n == 0) return 0; if (p == 0) return 1; else if (p > 0) return n * power(n, p - 1); else if (p < 0) return power(n, p + 1) / n ; } |
递归的代码行数更少,看着挺好的,但是思考的时候就感觉略有压力了,再次之前,我没有写过递归的函数,因为不会,这次努力的想了一下,发现递归是从根部开始思考的,因为是一个个函数排下去的,所以其实是从p==0开始运行的。return 1,然后一直运算到*n截止,这样思考就能得出答案了。
相关文章
- 《尼尔:机械纪元》武器黑之倨傲属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》机械生命体的枪获得方法介绍 11-15
- 《尼尔:机械纪元》武器机械生命体的枪属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》天使之圣翼获得方法介绍 11-15
- 《尼尔:机械纪元》武器天使之圣翼属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》武器恶魔之秽牙属性及特殊能力介绍 11-15