回 帖 发 新 帖 刷新版面

主题:急急急!!高手速来!

有这么一道题:
已知一对兔子,每个月可以生一对小兔,而小兔过一个月也可生一对小兔。即兔子的对数是:第一个月1对,第二个月2对,第三个月3对,第四个月5对……假设兔子的生育期
是12个月,并且不死,问一年后,这对兔子有多少对活着的后代?
答案是:
program daan;
const
     n=12;
var
     i,lastx,prevx,x:integer;
begin
     prevx
     lastx
     fori:=3 to n do
     begin
          x:=lastx+prevx;
          prevx:=lastx;
          lastx:=x;
     end;
     writeln('total:',x);
     readln
end.
我的问题是虽然运用了循环结构的递推关系,可是i这个循环控制变量好象
没用上啊。希望大家给我解答以下,最好在循环体上加上注释,小弟愚笨,
希望大家帮我一下。若给出答案,本人将会评满分予以感谢。谢谢!

回复列表 (共7个回复)

沙发

你这是什么程序?

[quote]prevx
lastx[/quote]

变量能当语句吗?
我觉得这应该是一个赋值语句:
               prevx := 1 
               lastx := 2
这个i没有在循环体内引用,它的作用只是控制循环次数,这样的循环变量叫“形式性循环变量”。

加上注释的程序:
PROGRAM daan;
CONST
    n = 12;                              'n是符号常量
VAR
   i, lastx, prevx, x: INTEGER;
BEGIN
   prevx := 1;                           
   lastx := 2;                           'prevx、lastx分别是当前月总数
                                          以及后面这个月的总数    
   FOR i:=3 TO n DO BEGIN
       x := lastx + prevx;               '这里是迭代
       prevx := lastx;
       lastx := x;
   END;
   WRITELN('total:',x);
   READLN;
END.

板凳

您真牛!!我最佩服您了,能告诉我您的联系方式吗?
QQ或邮箱都行,最好是您经常上的!

3 楼

对不起!我没有QQ,也没有邮箱,你可以到我的BLOG里面去和我联系。

4 楼

又要闹兔灾了!

5 楼

这是斐不拉希数列
1,1,2,3,5,8,13,21,...

6 楼


兔子问题

7 楼

把循环加上这些:
  for i:=1 to n do
   begin
    x:=1*i+x:
    

我来回复

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