HDU-2199-Can you solve this equation
http://acm.hdu.edu.cn/showproblem.php?pid=2199
二分法求方程的根
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
double sol(double x)
{
return 8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6;
}
int main()
{
int t;
double r,l,mid,y;
scanf("%d",&t);
while(t--)
{
scanf("%lf",&y);
if(sol(0)<=y&&sol(100)>=y)
{
l=0;
r=100;
while(r-l>1e-6)
{
mid=(l+r)/2;
if(sol(mid)<y)
l=mid;
else
r=mid;
}
printf("%.4lf\n",mid);
}
else
printf("No solution!\n");
}
return 0;
}
HDU-2141-Can you find it
http://acm.hdu.edu.cn/showproblem.php?pid=2141
二分法用于查找
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int l,n,m;
int a[505],b[505],c[505],ab[255025];
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int find(int x)
{
int low,high,mid;
low=0;
high=l*n-1;
while(low<=high)
{
mid=(low+high)/2;
if(ab[mid]==x)
return 1;
if(ab[mid]>x)
high=mid-1;
else
low=mid+1;
}
return 0;
}
int main()
{
int i,j,k,t;
int flag;
int cases=1;
while(scanf("%d%d%d",&l,&n,&m)!=EOF)
{
printf("Case %d:\n",cases++);
for(i=0;i<l;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
for(i=0;i<m;i++)
scanf("%d",&c[i]);
for(i=0;i<l;i++)
for(j=0;j<n;j++) //所有a+b的和
ab[i*n+j]=a[i]+b[j];
qsort(ab,l*n,sizeof(ab[0]),cmp);
scanf("%d",&t);
while(t--)
{
flag=0;
scanf("%d",&k);
for(i=0;i<m;i++)
if(find(k-c[i]))
{
flag=1;
break;
}
if(flag)
printf("YES\n");
else
printf("NO\n");
}
}
return 0;
}
分享到:
相关推荐
对于区间[a,b]上连续不断且f(a)·f(b)的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。 算法:当数据量很大适宜采用该...
二分法流程图1
二分法排序算法 C语言实现 个人爱好 希望相互学习
利用java二分法来计算最靠近值,通过二分法来遍历数据,得到想要最近值
本例实现了用c语言实现了二分法求解方程。本例主要介绍用二分法求解方程f(X)=sin(x)在(-3,7)这个范围内的解C语言实现方法。 求解主要通过函数BisectRoot()来完成。该函数首先根据二分法的需要扫描根的存在 及根的...
java 求解非线性方程 二分法 牛顿法 弦截法 public class Binary { static double m, n, jingdu; static int flag = 0; /** * @param args * 二分法 */ public static double binary(double m, double ...
二分法(dichotomie) 即一分为二的方法. 设[a,b]为R的闭区间. 逐次二分法就是造出如下的区间序列([an,bn]):a0=a,b0=b,且对任一自然数n,[an+1,bn+1]或者等于[an,cn],或者等于[cn,bn],其中cn表示[an,bn]的...
二分法解非线性方程C++代码
用C++程序编的二分法,通俗,容易懂,实验报告也有用!
二分法 解函数 c++语言 c语言 递归 数根
二分法排序和查找(C#)
c语言二分法求解方程c语言二分法求解方程c语言二分法求解方程
二分法和牛顿迭代法求解方程二分法和牛顿迭代法求解方程二分法和牛顿迭代法求解方程二分法和牛顿迭代法求解方程
利用Fortran实现二分法运算,例如计算方程f=x**3+4*x**2-10的零点。本程序设置较为人性化。
% 二分法解方程 % Bisection Method % The first parameter fx is a external function with respect to viable x. % xa is the left point of the initial interval % xb is the right point of the initial ...
此资源师大学教材数值分析一科中的二分法的上机实验代码(C语言版)
C语言实现的二分法快速查找|二分法排序|二分法查找C#
文中给出一种解非线性超越方程组的数值方法,先用二分法原理给出解一个一元方程的流程,继而利用这个流程给出解二元方程 组的流程,再推广到 N 元的方程组中。 在数值计算过程中,通过对超越方程组的一元化处理,仅利用...
c#练习二分法示例二分法查找是一种非常高效的搜索方法,主要原理是每次搜索可以抛弃一半的值来缩小范围。其时间复杂度是O(log2n),一般用于对普通搜索方法的优化。 二分法的适用情况一般满足以下几点:(1)该数组...
用C/C++方法描述二分法求方程根的简单程序