#include<stdio.h>
#define exp 1e-6
double d[1000+16];
double A,res;
int N;
int judge(double x)
{
int i;
d[0]=A;
d[1]=x;
for(i=2;i<N;i++)
{
d[i]=2*(d[i-1]+1)-d[i-2];
if(d[i]<0)
return 0;
}
return 1;
}
int main(void)
{
double l,r,m;
scanf("%d%lf",&N,&A);
l=0;r=A;
while(r-l>exp)
{
m=(r+l)/2;
if(judge(m))
{
res=d[N-1];
r=m;
}
else
l=m;
}
printf("%.2lf\n",res);
}

本文介绍了一种使用二分查找法来寻找特定数值的方法,并通过一个递推数列的实例展示了如何利用该算法找到满足条件的数值。文章详细解释了算法的实现过程,包括初始化变量、设置查找范围、迭代计算等步骤。
1万+

被折叠的 条评论
为什么被折叠?



