例7.7 递归

//递归:递去,归来;
//一直往前走,打开门,打开门,走到最后退的时候,再倒着关回来。
//找到限制条件,出口
//一般将问题划为两部分;
//7.7 求n!
// 1*2*3*4*5*(n-1)*n
// 1到n-1    n
// 0的阶乘为1  出口
//先输入n的值,调用函数
#include<stdio.h>
int mult(int n)
{

		if (n == 0 || n == 1)
			return 1;
		else 
			return mult(n - 1)*n;//阶乘 返回值乘以n
}
int main()
{
	int n = 4;
	printf("%d",mult(n));
}
	
// 佩波纳奇数列的递归
//1,1,2,3,5,8,13
//f(1) = 1; f(2) = 1;  出口
//从3起,f(n) = f(n - 2) + f(n - 1);
#include<stdio.h>
int f(int n)
{
	if (n == 1 || n == 2)
		return 1;
	else
		return f(n - 2) + f(n - 1);
 }
int main()
{
	int n = 7;
	printf("%d", f(n));
	return 0;

}
//1+2+3+4+...+n
//1+2+..+(n-1)
//n
#include<stdio.h>
int f(n)
{
	if (n == 1)
		return 1;
	else
		return f(n - 1) + n;
}
int main()
{
	int n = 4;
	printf("%d", f(n));
	return 0;
}

上一篇:LeetCode:面试题 08.05. 递归乘法


下一篇:整数的各位积和之差