回 帖 发 新 帖 刷新版面

主题:[讨论]急!!!求助高手问题 11点前回答

高手帮忙啊 
有这么一道题:
用1*2的长方形 铺满2*n的长方形 求有多少方法 输入n (用函数 递归做)!!
急 11点前要基本算法 
实在不行 给我个规律就好了!!!!!!!!!!!!

回复列表 (共3个回复)

沙发

f[i]=f[i-1]+f[i-2]

板凳

递推法
规律楼上都已经给出了

3 楼

既然要递归, 那么就要考虑一下时间问题了, 优化过的递归程序如下:
program lx;
  var
    k:array[1..100] of longint;
    n:integer;
  function ss(a:integer):longint;
    var
      m,n:longint;
    begin
      if k[a]<>0 then ss:=k[a] else begin
        k[a]:=ss(a-1)+ss(a-2);
        ss:=k[a];
      end;
    end;
  begin
    fillchar(k,sizeof(k),0);
    k[1]:=1;
    k[2]:=2;
    readln(n);
    writeln(ss(n));
  end.
程序未经调试, 自己调试一下.

我来回复

您尚未登录,请登录后再回复。点此登录或注册