A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuyang 中级黑马   /  2015-1-2 21:56  /  971 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//
//  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;
}

1 个回复

倒序浏览
求 x的y次方法的方法名起的不太好吧,可读性有点差了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马