zoukankan      html  css  js  c++  java
  • 模拟题4

    题目描述

    问题描述

    有一长度为N(1<=N<=10)的地板,给定三种不同瓷砖:一种长度为1,一种长度为2,另一种长度为3,数目不限。要将这个长度为N的地板铺满,并且要求长度为1的瓷砖不能相邻,一共有多少种不同的铺法?在所有的铺设方法中,一共用了长度为1的瓷砖多少块?

    例如,长度为4的地面一共有如下4种铺法,并且,一共用了长度为1的瓷砖4块:

    4=1+2+1

    4=1+3

    4=2+2

    4=3+1

    编程求解上述问题。 

    输入格式

    只有一个数N,代表地板的长度

    输出格式

    第一行有一个数,代表所有不同的瓷砖铺放方法的总数。 
    第二行也有一个数,代表这些铺法中长度为1的瓷砖的总数 
     

    样例输入

    4 

    样例输出

    4

     

    不解释了,很简单,只是我比较弱而已……

    View Code
     1 program sky;
    2 var
    3 n,ans1,ans2:longint;
    4 procedure dfs(i,j,k:longint);
    5 begin
    6 if i=n then
    7 begin
    8 inc(ans1);
    9 inc(ans2,j);
    10 exit;
    11 end;
    12 if k<>1 then dfs(i+1,j+1,1);
    13 if i<n-1 then dfs(i+2,j,0);
    14 if i<n-2 then dfs(i+3,j,0);
    15 end;
    16 begin
    17 read(n);
    18 dfs(0,0,0);
    19 writeln(ans1); writeln(ans2);
    20 end.



  • 相关阅读:
    SpringBoot通过注解获取接口信息
    2.2.0Nginx代理与负载均衡
    1.1Nginx概述
    Nginx安装整合
    每日日报27
    PHP所遇问题——注意:未定义的索引
    每日日报26
    每日日报25
    每日日报24
    每日日报23
  • 原文地址:https://www.cnblogs.com/skysun/p/2435365.html
Copyright © 2011-2022 走看看