黄金分割点
public class 黄金分割点 {
public static void main(String[] args) {
int range = 20;
float breakpoint = 0.618f;
float mindiff = 1;
int answerFenzi = 0;
int answerFenmu = 0;
for (int fenzi = 1; fenzi <= range; fenzi++) {
for (int fenmu = 1; fenmu <= 20; fenmu++) {
if (fenmu % 2 == 0 && fenmu % 2 == 0)
continue;
float value = (float) fenzi / fenmu;
float dif = value - breakpoint;
dif = dif < 0 ? 0 - dif : dif;
if (dif < mindiff) {
mindiff = dif;
answerFenmu = fenmu;
answerFenzi = fenzi;
}
}
}
System.out.println("距离黄金分割点0.618最近的两个数的商为:" + answerFenzi + "/" + answerFenmu + ".值为" + ((float) answerFenzi / answerFenmu));
}
}
/