Canyousolvethisequation?
TimeLimit:2000/1000MS(Java/Others)MemoryLimit:32768/32768K(Java/Others)
TotalSubmission(s):322AcceptedSubmission(s):148
ProblemDescription
Now,giventheequation8*x^4+7*x^3+2*x^2+3*x+6==Y,canyoufinditssolutionbetween0and100;
Nowpleasetryyourlucky.
Input
ThefirstlineoftheinputcontainsanintegerT(1<=T<=100)whichmeansthenumberoftestcases.ThenTlinesfollow,eachlinehasarealnumberY(fabs(Y)<=1e10);
Output
Foreachtestcase,youshouldjustoutputonerealnumber(accurateupto4decimalplaces),whichisthesolutionoftheequation,or“Nosolution!”,ifthereisnosolutionfortheequationbetween0and100.
SampleInput
2
100
-4
SampleOutput
1.6152
Nosolution!
题目分析:
很明显,这是一个2分搜索的题目, 但是注意下题目的数据!! 1e10 的实数!! 而且精度是要求在 0.0001 . 所以就算是2分数据量依旧比较大,如果用
通常的递归方法吗很遗憾 , RE了............. 没办法, 只能循环了.
下面的是递归 RE 的代码 :
#include <iostream>
#include <cmath>
using namespace std;
#define POW(x) ( (x) * (x) )
#define POW3(x) ( POW(x) * (x) )
#define POW4(x) ( POW(x) * POW(x) )
double y = 0;
bool douEql ( double a,double b )
{
if ( fabs( a - b ) <= 1e-6 )
return true;
return false;
}
double cal ( double n )
{
return 8.0 * POW4(n) + 7 * POW3(n) + 2 * POW(n) + 3 * n + 6 ;
}
double biSearch ( double l, double r )
{
if ( douEql ( l,r ) )
{
if ( douEql ( y, cal ( l ) ) )
return l;
return -1;
}
double mid = ( l + r ) / 2.0;
if ( douEql ( y, cal ( mid ) ) )
return mid;
else if ( cal ( mid ) > y )
return biSearch ( l,mid - 0.0001 );
else
return biSearch ( mid + 0.0001, r );
}
int main ()
{
int T;
scanf ( "%d",&T );
while ( T -- )
{
scanf ( "%lf",&y );
if ( cal(0) >= y && cal(100) <= y )
{
printf ( "No solution!\n" );
continue;
}
double res = biSearch ( 0.0, 100.0 );
if ( res == -1 )
printf ( "No solution!\n" );
else
printf ( "%.4lf\n",res );
}
return 0;
}
AC代码如下:
分享到:
相关推荐
在本文档中,我们将探讨如何使用MATLAB来解决一元和二次方程,特别是在金融领域的应用。MATLAB是一个强大的数值计算软件,它提供了优化工具箱,用于处理线性规划(LP)和二次规划(QP)问题。本文档通过马科维茨的投资...
A perennial bestseller by eminent mathematician G. Polya, "How to Solve It" will show anyone in any field ..."In order to solve this differential equation you look at it till a solution occurs to you.
) 或 "How did you solve the problem?" (你是如何解决这个问题的?) 4. 表示爱好、程度或看法:"How"可以用来询问对方对某事物的感受,比如 "How do you like my new haircut?" (你觉得我的新发型怎么样?) 或 ...
这是一个用二分法,为基础的解一元四次方程的程序,头文件没有上传。
25. "Can you solve this problem?" 邀请学生尝试解答问题。 26. "Let’s read it together. Ready, go!" 齐声朗读,提高学生的阅读流利度。 27. "Read slowly and clearly." 提示学生慢速、清晰地朗读。 28. "Who ...
使用matlab求解方程组。举例求解 定解方程组,不定方程组,超定方程组,奇异方程组。
22. "Can you solve this problem?" 和 "Let’s read it together. Ready, go!" - 鼓励学生独立解决问题或集体朗读。 23. "Read slowly and clearly." - 提醒学生清晰、慢速地朗读。 24. "Who wants to try?" 和 ...
Multithreading is essential if you want to create an Android app with a great user experience, but how do you know which techniques can help solve your problem? This practical book describes many ...
33. "Can you solve this problem?" 挑战学生解决问题的能力。 34. "Let’s read it together. Ready, go!" 齐声朗读,提高学生的口语和听力技能。 35. "Read slowly and clearly." 提醒学生清晰、慢速地阅读,以便...
Dichotomy method to solve the equation root Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "二分法求解方程的根", ...
例如,"How did you solve the problem?"(你是如何解决这个问题的?)或"How did you cook the dish?"(你是如何烹饪这道菜的?) 4. **表示爱好、程度、看法等**:"How"可用于询问对某事物的喜好程度或评价。例如...
本项目".solve_equation.rar"着重展示了如何利用C++进行数学计算,特别是解决线性方程组的问题。 线性方程组是数学中的基础概念,广泛应用于科学、工程、经济等领域。在计算机编程中,处理线性方程组的方法有很多,...
32. "Can you solve this problem?" - 挑战学生解决问题的能力。 33. "Let’s read it together. Ready, go!" - 齐读,提升学生的朗读技巧和节奏感。 34. "Read slowly and clearly." - 强调慢读和清晰发音的重要...
25. "Can you solve this problem?" - 邀请学生尝试解答问题,提升解决问题的能力。 26. "Let’s read it together. Ready, go!" - 齐声朗读,增强学生们的集体意识和朗读技巧。 27. "Read slowly and clearly." -...
标题 "C-code-to-solve-quadratic-equation-源码.rar" 暗示这是一个包含C语言源代码的压缩包,其目的在于解决二次方程。二次方程是形如 ax^2 + bx + c = 0 的方程,其中a、b、c是常数,a不等于0。在数学中,二次方程...
32. "Can you solve this problem?" 询问学生是否能解答某个问题。 33. "Let's read it together. Ready, go!" 齐声朗读,提高学生的语音和语调感知。 34. "Read slowly and clearly." 告诉学生朗读时应清晰且速度...