int denominator= 20;
double j = 1;
int numerator = 1;
double[] result = new double[21];
int[] numerator_result = new int[21];
while(denominator!=0){
j = denominator*0.618;
System.out.println("j:"+j);
if(Math.ceil(j)-j > j-Math.floor(j)){
result[denominator]= j-Math.floor(j);
numerator_result[denominator]= (int)Math.floor(j);
}else{
result[denominator]= Math.ceil(j)-j;
numerator_result[denominator]= (int)Math.ceil(j);
}
System.out.println("result["+denominator+"]:"+result[denominator]);
denominator--;
}
double result_final=20;
int denominator_final=0;
int i=0;
for(i=1;i<20;i++){
if(result[i]< result_final){
result_final= result[i];
denominator_final = i;
}
}
System.out.println("分母是:"+denominator_final);
System.out.println("分子是:"+numerator_result[denominator_final]);
System.out.println("最接近0.618的值为:"+result_final);
}