用Free Pascal解决以下问题,解决者,重赏悬赏10
答案:1 悬赏:50 手机版
解决时间 2021-03-27 23:24
- 提问者网友:溺爱和你
- 2021-03-27 01:11
用Free Pascal解决以下问题,解决者,重赏悬赏10
最佳答案
- 五星知识达人网友:旧脸谱
- 2021-03-27 01:17
这里提供用数组求解的简单地解法,输入的年数限制在60年以内。程序如下:
var
b:array[1..200000000] of longint;
i,k,kk,t:longint;
n:byte;
begin
readln(n); {注:n不要超过60}
b[1]:=1; {b存放牛的出生坐标}
t:=1; {t为时间轴,年数 }
k:=1;kk:=k; {k为牛的数量,kk为牛的数量的临时中间变量}
repeat
for i:=1 to k do begin {每年对当年的所有母牛循环判断其年龄 }
if t-b[i]>=4 then begin {如果年龄>=4,则增加一头小母牛}
kk:=kk+1;
b[kk]:=t;
end;
end;
k:=kk;
writeln(t:4,k:12);
t:=t+1;
until t-1=n;
end.追问貌似不对哦,源代码运行时错误了追答第1年是刚生下来的牛犊;
4年生一头小母牛必须是满4年。
所以:
第1年 1头母牛
第2年 1头母牛
第3年 1头母牛
第4年 1头母牛
第5年 2头母牛
6 3
7 4
8 5
9 7 10 10
11 14
12 19
13 26
14 36 15 50
16 69
17 95
18 131
19 181
20 250
21 345
22 476
23 657
24 907
25 1252
26 1728
27 2385
28 3292
29 4544
30 6272
31 8657 32 3290
33 3322
34 3354
35 3386
var
b:array[1..200000000] of longint;
i,k,kk,t:longint;
n:byte;
begin
readln(n); {注:n不要超过60}
b[1]:=1; {b存放牛的出生坐标}
t:=1; {t为时间轴,年数 }
k:=1;kk:=k; {k为牛的数量,kk为牛的数量的临时中间变量}
repeat
for i:=1 to k do begin {每年对当年的所有母牛循环判断其年龄 }
if t-b[i]>=4 then begin {如果年龄>=4,则增加一头小母牛}
kk:=kk+1;
b[kk]:=t;
end;
end;
k:=kk;
writeln(t:4,k:12);
t:=t+1;
until t-1=n;
end.追问貌似不对哦,源代码运行时错误了追答第1年是刚生下来的牛犊;
4年生一头小母牛必须是满4年。
所以:
第1年 1头母牛
第2年 1头母牛
第3年 1头母牛
第4年 1头母牛
第5年 2头母牛
6 3
7 4
8 5
9 7 10 10
11 14
12 19
13 26
14 36 15 50
16 69
17 95
18 131
19 181
20 250
21 345
22 476
23 657
24 907
25 1252
26 1728
27 2385
28 3292
29 4544
30 6272
31 8657 32 3290
33 3322
34 3354
35 3386
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯