黑马程序员技术交流社区

标题: 递归 [打印本页]

作者: yuyang    时间: 2015-1-2 21:56
标题: 递归
//
//  main.c
//  16-递归应用举例
//
//  Created by apple on 14/12/31.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#include <stdio.h>

//用递归法求n得阶乘
// 5!
// 5*4*3*2*1
// 4!*5
// 3!*4
// 2!*3
// 1!*2
// 第一个:递归退出的条件:1! = 1
// 第二个:n! = (n-1)!*n
// 第三个:自己调用自己

int jieCheng(int n){

    int ji;
    //判断n==1,如果n=1,阶乘的结果就是1
    if (n==1) {
        ji = 1;
    }else{
        //如果n != 1,前一个数的阶乘乘以当前的n的值
        ji = jieCheng(n-1)*n;
   
    }
    return ji;

}

//求 x的y次方
int xy(int x,int y){

    int ji;
    //判断y==1
    if (y==1) {
        ji = x;
    }else{
        // 如果y !=1 此时,计算x的y-1次方 乘以 x
        // x y   x y-1 *x
        // 2^3   2^2   *2
        ji = xy(x,y-1)*x;
   
    }

    return ji;
}


int main(int argc, const char * argv[]) {
   
//    int ji = jieCheng(8);
    int ji = xy(2,7);
    printf("ji = %d\n",ji);
   
    return 0;
}

作者: qyb1008    时间: 2015-1-3 10:32
求 x的y次方法的方法名起的不太好吧,可读性有点差了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2