信息学奥赛一本通1167

信息学奥赛一本通1167:再求f(x,n)

【题目描述】
已知
信息学奥赛一本通1167_第1张图片
用递归函数求解。

【输入】
第一数是x的值,第二个数是n的值。

【输出】
函数值。

【输入样例】
1 2
【输出样例】
0.40
【来源】
No

思路:
信息学奥赛一本通1167_第2张图片
分行看式子,第一行为x,第二行为n+/…;

再看特殊情况,当n=1时,可以发现,f(x,n)=1+x;

再找到从第二行起的规律
发现f(x,n)=n+f(x,n-1);

于是可用递归
f函数代码如下:

double f(x,n)
{
	if (n==1)return 1+x;
	return n+x/f(x,n-1);
}

但是写完函数后,要将函数返回值做一个总体的处理(我们是从第二行开始找的规律),所以输出的结果应该为x/f(x,n)

你可能感兴趣的:(递归,算法,c++)