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) ;
}