一生一世陪你


私信TA

用户名:wodeshijie

访问量:23434

签 名:

我要好好地写代码..........

等  级
排  名 428
经  验 4926
参赛次数 1
文章发表 19
年  龄 10
在职情况 学生
学  校 河南农业大学
专  业

  自我简介:

我就是我,可能不是太好,但是我就是我,谁也不能取代........

解题思路:
 

本题的意思是让你去求IAA的值的,我们一般读完题之后应该首先想到用二分法,记住一点,遇见这种题
一般情况下都是让你用二分法来解决,那么问题来了,就算是用二分法来解决的话那也是需要知道一个上限
和一个下限的,而这个题则是很明显,-1,9999,之后我们只需要按照二分法的步骤走即可了

注意事项:

就是要注意好上下限的改变
参考代码如下:
package itcast1;
import java.text.DecimalFormat;
import java.util.Scanner;

public class L1075 {
	
	static String str="";
public static void main(String[] args) {
	DecimalFormat format=new DecimalFormat("##0.00");
	Scanner m=new Scanner(System.in);
	
	while(true)
	{
		int T=m.nextInt();
		double cf[]=new double[T+1];
		
		if(T==0)break;
		
		else
		{
			for(int i=0;i<=T;i++)
				cf[i]=m.nextInt();
			 double L=-1.0;
			 double R=9999.0;
			for(int i=0;i<100;i++)
			{
				  double IRR = (L+R)/2;
				  double sum=0;
				  double den=1;
				  for(int k=0;k<=T;k++)
				  {
					  sum+=cf[k]/den;
					  den*=(1+IRR);
				  }
				  if(sum>0) 
					  L=IRR; 
				  else
					  R=IRR;
				 
			}
			str+=format.format(L)+"\n";	
		}
		
	}
	System.out.println(str);
}
}
 

0.0分

2 人评分

  评论区

  • «
  • »