hdu-2199 Can you solve this equation?

二分法 :
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(){
	int i,j,k,t;
	int T;
	double mod,temp_one,temp_two,last,number;
	scanf("%d",&T);
	while(T--){
		scanf("%lf",&number);
		temp_one=8*pow(100.0,4)+7*pow(100.0,3)+2*pow(100.0,2)+3*100.0+6;
		temp_two=8*pow(0,4)+7*pow(0,3)+2*pow(0,2)+3*0+6;
		if(temp_one<number||number<temp_two)
		   {
		   	 //printf("%.0lf %.0lf\n",temp_one,number);
		   	 printf("No solution!\n");
		   }
		else {
		       mod=0;
			  last=100;
			while(last-mod>1e-6){
				temp_two=(mod+last)/2;
				temp_one=8*pow(temp_two,4)+7*pow(temp_two,3)+2*pow(temp_two,2)+temp_two*3+6;
				if(temp_one>number)
					last=temp_two;
				else
					 mod=temp_two;
				//	printf("%.4lf\n",temp_two);
			}
			printf("%.4lf\n",temp_two);
		}
	}
	return 0;
}

posted @ 2015-04-18 10:00  wojiaohuangyu  阅读(6)  评论(0)    收藏  举报