ACM Strange fuction

现在,这里有一个功能:
  F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100) 
当x在0到100之间时,你能找到最小值吗?

输入

第一行包含一个整数T(1 < = T < = 100),这意味着测试用例的数量。然后T行,每一行只有一个实数Y。(0 < Y < 1e10)当x在0到100之间时,输出值为最小值(精确到小数点后4位)。

Sample Input

2
100
200

Sample Output

-74.4291
-178.8534
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 double del(double mid)  /*求导*/
 4 {
 5     double temp = 42*pow(mid,6)+48*pow(mid,5)+21*mid*mid+10*mid;
 6     
 7     return temp;
 8 }
 9 
10 double cacu(double mid ,double y)
11 {
12     double ans;
13     ans = 6*pow(mid,7)+8*pow(mid,6)+7*pow(mid,3)+5*mid*mid-y*mid;
14     return ans;
15 }
16 int main()
17 {
18     int t;
19     double y; 
20     while(cin>>t)
21     {
22         while(t--)
23         {
24             scanf("%lf",&y);
25             double left = 0,right = 100,mid;
26             while( right-left  >1e-7)
27             {
28                 mid =(left+right) /2;
29                 if(del(mid) - y > 0)
30                     right = mid;
31                 else
32                     left = mid;
33             }    
34             printf("%.4lf\n",cacu(mid,y));
35         }
36     
37     } 
38     return 0;
39 }

 

转载于:https://www.cnblogs.com/jj81/p/7404590.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值