递归问题

题目如图
在这里插入图片描述
分析可得通项公式:f(n) = f(n-1) + f(n-2);(n>2)
由此写出算法

#include "stdafx.h"
#include"stdlib.h"
int digui(int n){
	int num = 0;
	if (n == 1){
		num = 1;
	}
	if (n == 2){
		num = 2;
	}
	if (n>2)
		num = digui(n - 1) + digui(n - 2);

	return num;
}
int _tmain(int argc, _TCHAR* argv[])
{
	int n,num;
	printf("输入要铺设的长度:");
	scanf("%d", &n);
	num = digui(n);
	printf("共有%d种方法\n", num);
	system("pause");
	return 0;
}

测试结果
在这里插入图片描述