【蓝桥杯】瓷砖铺放(Java实现)


/* 程序问题注释开始

  • 程序的版权和版本声明部分

  • Copyright © 2020,湖南工程职业技术学院信息工程学院学生

  • 文件名称: 蓝桥杯赛题

  • 作 者: 李 斌

  • 完成日期: 2020 年 04 月 12日

  • 对任务及求解方法的描述部分

  • 问题描述
      有一长度为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 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Scanner in=new Scanner(System.in);
		//用户输入地板总长度
		int n=in.nextInt();
		//调用并输出
		System.out.println(Tile(n));
	}
	public static int Tile(int n)
	{
		//退出条件1
		if(n==1)
		{
			return 1;
		}
		//退出条件2
		if(n==2)
		{
			return 2;
		}
		//重复
		return Tile(n-1)+Tile(n-2);
	}
}

运行结果:
运行结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一种可能的实现方法: ```python # 定义瓷砖类型 TILE_TYPES = {'A', 'B', 'C', 'D'} # 定义瓷砖填色函数 def fill_tile(tile_map, row, col, color): # 获取当前位置的瓷砖类型 tile_type = tile_map[row][col] # 如果当前位置已经填过色,或者要填的颜色和当前颜色相同,则直接返回 if tile_map[row][col] == color or tile_map[row][col] == '*': return # 将当前位置填色 tile_map[row][col] = color # 递归填色周围的瓷砖 if row > 0: fill_tile(tile_map, row - 1, col, color) # 上 if row < len(tile_map) - 1: fill_tile(tile_map, row + 1, col, color) # 下 if col > 0: fill_tile(tile_map, row, col - 1, color) # 左 if col < len(tile_map[0]) - 1: fill_tile(tile_map, row, col + 1, color) # 右 # 测试代码 if __name__ == '__main__': # 测试数据 tile_map = [ ['A', 'B', 'A', 'C'], ['B', 'C', 'D', 'A'], ['C', 'D', 'B', 'C'] ] row = 1 col = 2 color = 'E' # 打印原始瓷砖地图 print('Original tile map:') for row in tile_map: print(row) # 填色 fill_tile(tile_map, row, col, color) # 打印填色后的瓷砖地图 print('Tile map after filling:') for row in tile_map: print(row) ``` 在上面的代码中,我们首先定义了瓷砖类型,然后定义了填色函数`fill_tile`。这个函数接受三个参数:瓷砖地图、要填色的行和列、要填的颜色。 在函数中,我们首先获取当前位置的瓷砖类型,如果当前位置已经填过色,或者要填的颜色和当前颜色相同,则直接返回。否则,将当前位置填色,并递归填色周围的瓷砖。这样,我们就可以实现瓷砖填色了。 在测试代码中,我们定义了一个测试瓷砖地图,然后调用`fill_tile`函数进行填色。最后,我们打印填色后的瓷砖地图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值