首页 > 试题广场 >

给定下列递归算法的程序段,则f(15)的返回值为()。 in

[单选题]
给定下列递归算法的程序段,则f(15)的返回值为()。
int f(int n)
{
	if(n < 1)
		return 0;
	if(n <= 4)
		return 1;
	return f(n - 1) + f(n - 2) + f(n - 3) + f(n - 4);	
} 
  • 1297
  • 2500
  • 4819
  • 9289
除了一个个推还有其他办法嘛
发表于 2022-03-15 16:23:09 回复(2)
一个个推,0~4算完分别是0,1,2,3,然后往后都是加前四个,约等于乘以2,算上几次之后大概就是2500左右
发表于 2022-04-16 11:52:45 回复(0)
数列通项,特征方程,线性齐次,4阶r^n式,主根1.9  所以fn=A*(1.92)^n  f5=4 f15=4*(1.92)^10
发表于 2025-07-10 00:38:54 回复(0)
我是笨办法,一步步算。f(1)=1,f(2)=1,f(3)=1,f(4)=1,f(5)=f(4)+f(3)+f(2)+f(1)=4,f(6)=7,f(7)=13,f(8)=25,f(9)=49^^f(15)=2500,
多亏算f(15),这要是f(150),纸都不够用的了。
发表于 2024-08-01 16:27:21 回复(0)
我的方法是大致估计,选项中的数的差值挺大的,故可以大致估计一下。如果选项答案是连着的那么只能手算。考虑递归树,15分成14.13.12.11.每次分支4就是大致的一个四叉树。算一下大致几层可以大致的估计总的数量大约是多少。经过推算一定大于A而又不可能大于C,故为B
发表于 2022-11-14 12:39:04 回复(0)