本文主要是介绍蓝桥杯 [ALGO-11] 瓷砖铺放,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
算法训练 瓷砖铺放
时间限制:1.0s 内存限制:512.0MB
问题描述
有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限。要将这个长度为N的地板铺满,一共有多少种不同的铺法?
例如,长度为4的地面一共有如下5种铺法:
4=1+1+1+1
4=2+1+1
4=1+2+1
4=1+1+2
4=2+2
编程用递归的方法求解上述问题。
输入格式
只有一个数N,代表地板的长度
输出格式
输出一个数,代表所有不同的瓷砖铺放方法的总数
样例输入
4
样例输出
5
算法代码
import java.util.Scanner;public class Main {private static int n;private static int result = 0;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {n = scanner.nextInt();int len = 0;getResult(len);System.out.println(result);result = 0;}}private static void getResult(int len) {if (len == n) {result++;return;}if (len > n) return;if (len + 1 <= n) getResult(len + 1);if (len + 2 <= n) getResult(len + 2);}}
这篇关于蓝桥杯 [ALGO-11] 瓷砖铺放的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!