基础2分。

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();//解决问题。
}
时间: 2024-10-31 03:28:01

基础2分。的相关文章

基础算法 分治法求最大最小元

思路:运用分治的思想,将要排序的整个数组从中间劈开,分别求其左右两边的最大最小值,然后将求出的最大最小值合起来进行比较. 当左右两边的数组小到一定程度时: (1)数组中只有一个元素,maxNum=minNum; (2)数组中有两个元素,找出两个元素中的最大最小值; (3)数组中大于两个元素,从中间分开,继续递归; 1 #include<stdio.h> 2 #include<iostream> 3 #include<stdlib.h> 4 using namespace

基础算法 分治法之合并排序

思想: 合并排序算法的分治策略是将待排序元素分成大小大致相同的两个子集合,分别对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合. 1 #include <stdio.h> 2 3 void merge(int a[],int p,int q,int r) 4 { 5 int n1=q-p+1,n2=r-q; 6 int b1[n1]; 7 int b2[n2]; 8 int i=0,j=0,temp1=p,temp2=q; 9 while(p<=q) 10 { 11

团队贡献分的分配

经过今天的讨论协商,我们基本确定了这轮软工项目的团队贡献分分配策略.下面是我们在会议中提出并普遍认同的几个侧重点,并且在每个侧重点上进行百分比率的得分分配,同时每个侧重点根据重要程度分配基础分,这样到最后我们能将300分(团队6人)完整且准确地分配给每个团队成员.同时我们在会议上进行了第一周个人贡献分的分配,鉴于团队工作的进度才刚刚开始,最后的团队贡献分并不以此为具. (一)分配侧重因素 (1)实质工作量(Workload,简记w): 工作量必然是衡量贡献比重的标准之一,按劳分配,多劳多得,但是

【git学习二】git基础之git管理本地项目

1.背景 git基础打算分两部分来说,一部分是对于本地项目的管理,第二部分是对于远程代码仓库的操作.git执行本地项目管理包括对于相关文件的追踪,暂存区的比较分析,提交,撤销等功能. 2.本地项目管理 首先mkdir一个文件夹,叫做GitTestFile,然后执行下面代码,创建git的管理配置 git init 接着加入如下代码,git add . ,把项目加入跟踪队列 git add . 可以用git status查看状态 加入readme文件,vim readme.txt .输入git st

Dockerfile基础

Dockerfile基础Dockerfile分四部分组成: 基础镜像.维护者信息.镜像操作指令.启动时命令ps: 我的本地镜像已经有centos,若没有请使用docker pull centos 入门例子创建Dockerfile文件 cd temp && vim Dockerfile #若本地镜像没有centos请先使用`docker pull centos`FROM centos MAINTAINER thewindkee thewindkee@163.com RUN echo hi在当

什么是云计算?云计算学习基础

云计算(cloudcomputing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源. 美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互.XenSystem,以及在国外已经非常成熟的Intel 和IBM,各种"云计算&quo

java SSM框架 多数据源 代码生成器 websocket即时通讯 shiro redis 后台框架源码

获取[下载地址]   QQ: 313596790官网 http://www.fhadmin.org/A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都

SpringMVC mybatis 多数据源 SSM java redis shiro ehcache

获取[下载地址]   QQ: 313596790A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技术:313596790 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩

java 整合redis缓存 SSM 后台框架 rest接口 shiro druid maven bootstrap html5

获取[下载地址]   QQ: 313596790A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技术:313596790 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩