蓝桥杯 算法训练 瓷砖铺放

一个啥都不会的锤子 2019-08-15 10:31:11


关于这个问题,我先尝试分析了一下
长度为1的地面的铺法:
1=1 (1种)
长度为2的地面的铺法:
2=1+1 2=2 (2种)
长度为3的地面的铺法:
3=1+1+1 3=1+2 3=2+1 (3种)
长度为4的地面的铺法:
4=1+1+1+1 4=1+1+2 4=1+2+1 4=2+2 4=2+1+1 (5种)
长度为5的地面的铺法:
5=1+1+1+1+1 5=1+1+1+2 5=1+2+2 5=1+2+1+1
5=2+2+1 5=2+1+1+1 5=2+1+2 5=1+1+2+1 (8种)
现在我们的规律就出来了
1 2 3 5 8
是不是很熟悉,这就是一个简单的递归,从第三个开始,它的值等于前第一个值加上前第二个的值
所以这题解决起来就很简单了




import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println(fun(num));
}

private static int fun(int num) {
if(num == 1 || num == 2){
return num;
}
return fun(num-1) + fun(num-2);
}
}

...全文
96 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧