主题:[讨论]求助:母牛生小牛问题
xuxu1991
[专家分:0] 发布于 2005-03-22 21:50:00
[em18][em18][em18]
[b]一头小母牛,从出生第4年起每年生一头小母牛,以此类推, 第n年是有几头母牛?[/b]
希望各位大虾快快解答!!
回复列表 (共13个回复)
沙发
xsbccf [专家分:20] 发布于 2005-03-23 07:43:00
此题其实不难,程序如下:
var n,m,i:longint;
begin
readln(n);
for i:=0 to n div 4 do
m:=round(exp(i*ln(2));
writeln(m);
end.
板凳
qzs123 [专家分:0] 发布于 2006-03-31 12:52:00
一楼的答案是错的,我试过了.......
[em20][em12][em7]
不信去看以下网址:
http://acm.tongji.edu.cn/showproblem.php?problem_id=1005
3 楼
实验小学 [专家分:30] 发布于 2006-04-02 10:45:00
var
j,n:integer;
begin
writeln('n=');
readln(n);
j:=n-3;
writeln(j);
end.
别想复杂了
4 楼
hevole [专家分:70] 发布于 2006-04-07 14:05:00
这道题的其实就是一个等比数列
解析是这样的
(为了简单说明 下面的解析中 抛去了“4岁以上的牛才能生小牛”的条件)
设一头牛的年龄是n,b(n)为第
则b(n)=b(n-1)+b(n-2)+...+b(1) (1
b(n-1)=b(n-2)+b(n-3)...b(1) (2
再把(2 式代入(1 式 得到
b(n)=b(n-1)+[b(n-2)+b(n-3)...-b(1)]
=b(n-1)*2
其中b(1)=1
这就是等比数列了~~
5 楼
hevole [专家分:70] 发布于 2006-04-11 10:14:00
b(n)是n岁的牛可生的小牛数
6 楼
bixuan [专家分:100] 发布于 2006-04-11 19:27:00
用递归算法,既第n年的牛数=第n-1的牛数+第n-2的牛数
n(1)=1;n(2)=1;
7 楼
96131 [专家分:0] 发布于 2006-04-12 10:34:00
路过,可惜我自己还不够理解,没看懂!
8 楼
96131 [专家分:0] 发布于 2006-04-14 15:34:00
我自己理解编的不知道对吗?好像有问题
9 楼
96131 [专家分:0] 发布于 2006-04-14 15:35:00
不好意思上一贴忘了上程序了
var a,b,c:integer;
begin
a:=12;
repeat
a:=a-3;
for b:=1 to a do
c:=c+b;
until a=3;
writeln(c+12);
readln;
end.
10 楼
maxumi [专家分:2200] 发布于 2006-04-20 15:14:00
建一个数组x.
x[1]=第1年的牛.
x[2]=第2年的牛.
x[3]=第3年的牛.
x[4]=可以生小牛的牛(>=4岁).
从第一年开始推,则第二年的状态:
t:=x[4]; (新生的牛)
x[4]:=x[4]+x[3]; (第3年的牛长了一岁)
x[3]:=x[2]; (第2年的牛长了一岁)
x[2]:=x[1]; (第1年的牛长了一岁)
x[1]:=t; (新生的牛)
依此类推.
我来回复