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