题目如图
分析可得通项公式: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; }
测试结果