求解: 若一头小母牛,从出生起第四个年头开始每年生一头母牛,按次规律,第n年时有多少头母牛?
求解: 求从1加到100的和
都用递归 非作业 只是今天正好在研究递归1,1,2,5,7,12的和 这个我可以理解
是f(n) = f(n-1)+f(n-2)n!也可以理解
是n! = n*(n-1)!但是开头这两个不是很理解 =(
求解: 求从1加到100的和
都用递归 非作业 只是今天正好在研究递归1,1,2,5,7,12的和 这个我可以理解
是f(n) = f(n-1)+f(n-2)n!也可以理解
是n! = n*(n-1)!但是开头这两个不是很理解 =(
年数0 4 8 12 16 20 ...
牛 1 2 4 8 16 32 ...
f(n)=f(n-4)*2
f(0,1,2,3)=1
第二个
sum(100)=sum(99)+100 ;
sum(99)=sum(98)+99;
sum(N)=sum(N-1)+N ;
sum(0)=0
* 年 0 1 2 3 4 5 6 7 8 9
* 牛 1 1 1 1 2 2 2 2 4
* 牛的数量为2的(年除以4的整数的)次方
*/
function int count(int num)
{
if (num/4==0)
{
int i= num%4;
returnNumber(i)
}
}
/**
*算出数量
*/
function long returnNumber(int i){
if (i=0)
return 1;
else 2*number(i-1)
}
f(0,1,2,3)=1
f(n)=f(n-1)+f(n-4)第n年时母牛数=去年母牛数+成年母牛牛数(满4岁)=========java 实现===============
public class Cow { public static int countCow(int year) {
if (year < 4)
return 1;
return countCow(year - 1) + countCow(year - 4);
} public static void main(String[] args) {
for (int i = 0; i <= 50; i++) {
System.out.println("year:" + i + "\t" + "cow:" + countCow(i));
}
}
}===========结果==========
year:0 cow:1
year:1 cow:1
year:2 cow:1
year:3 cow:1
year:4 cow:2
year:5 cow:3
year:6 cow:4
year:7 cow:5
year:8 cow:7
year:9 cow:10
year:10 cow:14
year:11 cow:19
year:12 cow:26
year:13 cow:36
year:14 cow:50
year:15 cow:69
year:16 cow:95
year:17 cow:131
year:18 cow:181
year:19 cow:250
year:20 cow:345
year:21 cow:476
year:22 cow:657
year:23 cow:907
year:24 cow:1252
year:25 cow:1728
year:26 cow:2385
year:27 cow:3292
year:28 cow:4544
year:29 cow:6272
year:30 cow:8657
year:31 cow:11949
year:32 cow:16493
year:33 cow:22765
year:34 cow:31422
year:35 cow:43371
year:36 cow:59864
year:37 cow:82629
year:38 cow:114051
year:39 cow:157422
year:40 cow:217286
year:41 cow:299915
year:42 cow:413966
year:43 cow:571388
year:44 cow:788674
year:45 cow:1088589
year:46 cow:1502555
year:47 cow:2073943
year:48 cow:2862617
year:49 cow:3951206
year:50 cow:5453761
PS:公牛好幸福啊,我的堆栈好痛苦啊:)
hamlet3145(蛤蟆乐天)的解是正确的.
第N年的母牛数目应该是上一年N-1的加上本年新生的数目.
本年新生的应该是四年前的母牛的数目.