import java.util.Scanner;
/**
*寻找某两个数相除,其结果 离黄金分割点 0.618最近
*分母和分子不能同时为偶数
*分母和分子 取值范围在[1-20]
*/
public class TestScanner {
public static void main(String[] args) {
int numerator = 1; //分子
int denominator = 1; //分母
double golden = 0.618; //黄金分割点
double mindistance = 1;
for (int i = 1; i < 20; i++) {
for (int j = 1; j < 20; j++) {
if (i % 2 == 0 && j % 2 == 0) {
continue;
}
double result = (double) i / j;
double distance = Math.abs(result - golden);
if (distance < mindistance) {
mindistance = distance;
numerator = i;
denominator = j;
}
}
}
System.out.println("离黄金分割点最近的两个数相除是:" + numerator + "/" + denominator + "=" + (double)numerator / denominator);
}
}
黄金分割点
最新推荐文章于 2022-04-09 17:48:35 发布