基础2分。
来源:互联网 发布:笑话源码 编辑:程序博客网 时间:2024/04/29 11:46
Problem Description
Now,given the equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,can you find its solution between 0 and 100;
Now please try your lucky.
Input
The first line of the input contains an integer T(1<=T<=100) which means the number of test cases. Then T lines follow, each line has a real number Y (fabs(Y) <= 1e10);
Output
For each test case, you should just output one real number(accurate up to 4 decimal places),which is the solution of the equation,or “No solution!”,if there is no solution for the equation between 0 and 100.
Sample Input
2
100
-4
Sample Output
1.6152
No solution!
题意:给你Y的值,叫你求出X的值。一道十分基础的2分题。
下面上代码附上详细解析:
#include <stdio.h>double f(double x){return 8*x*x*x*x+7*x*x*x+2*x*x+3*x+6;//列出题目的算式,下面的f(100)和f(0)、f(mid)都是这个的值。}void pp(){double wbx,cc;//定义变量int n;double y;;// 定义变量double mid;//定义变量scanf("%d",&n);//输入N代表案例个数while(n--){scanf("%lf",&y);//输入Y。wbx=100.0;cc=0.0;if(y>f(100) ||y<f(0))//题目要求:如果Y的值大于f(100)或者小于f(0)则继续。{printf("No solution!\n");//没有所求的X。continue;}while(wbx-cc>1e-8)// 2分开始了,1e-8代表10的负8次方。取得越小越好,这样值才足够的精确。当这两个值相差大于1e-8时,不断的循环下面的操作。{mid=(wbx+cc)/2.0;// 让mid等于两个和的一半。if(f(mid)>y) //如果这f(mid)大于Y的话{wbx=mid-1e-8;//让大的那个减小。}else{cc=mid+1e-8;//否则让小的那个增加。}}printf("%.4lf\n",mid);// 跳出循环后f(mid)自然等于Y了(可精确到小数点后7、8位吧)。而mid就是我们所求的x。题目只要保留4位小数就好了。四位时所求的mid和x的值一定是相等的。}}int main(){pp();//解决问题。}
0 0
- 基础2分。
- 差分约束基础
- 浙大数据结构基础4-2 Isomorphic (7分)
- PAT基础编程 5-2 然后是几点 (15分)
- POJ1201基础差分约束
- 分形的数学基础
- 图像分基础习题1
- JVM基础研究整理之六--分代垃圾回收详述2
- 网络编程基础2-二进制与点分十进制IP转换
- 数字图像处理2--数学基础(傅立叶,拉普拉斯,卷积,差分计算)
- 分形理论的基础概念
- Linux基础-第三课(下部分)
- POJ 1201 Intervals(差分约束基础)
- 数电模电基础(1)分压电路
- POJ 3159--Candies【基础差分规划】
- 【基础练习】【差分】codevs1242 布局题解
- Java基础_猴子分桃问题
- [系分] 细化阶段-基础迭代
- .net mvc 中@Html.DisplayFor 控制日期的显示格式
- Android Zxing 二维码添加闪光灯的功能
- c++趣味入门——扫雷游戏
- springmvc+jdbc 声明式事务管理,适用于多种数据库框架
- Python容易混淆的地方
- 基础2分。
- TCP粘包问题分析和解决(全)
- 整合ssh框架下注册登录的实现
- const与#define 区别详解
- RMQ问题之ST算法
- oracle 回收硬盘空间
- 一辈子说长很长,说短很短!
- 办公室养生小动作
- springmvc ajax无刷新图片上传