黄金分割点

public class GoldCut {
	public static void main(String[] args) {
		
		

		final double GOLDEN_SECTION_RATIO=0.618;
		int i,j,finalI=1,finalJ=1;
		double diff,minDiff=1;
		
		for(i=1;i<20;i++) //分子i从1至19
		{
			for(j=i+1;j<=20;) //分母j从i+1开始
			{
				diff=Math.abs((double)i/j-GOLDEN_SECTION_RATIO);
				if(diff<minDiff)
				{//如果i/j更接近0.618
					finalI=i;
					finalJ=j;
					minDiff=diff;
				}
				if(i%2==0) //如果分子是偶数,分母只取i之后的奇数
					j+=2;
				else
					j++;
			}
		}
		System.out.println("距离黄金分割点0.618最近的两个数相除是"+finalI+"/"+finalJ+
				"="+(double)finalI/finalJ);
		
		
		
	}
}
原文地址:https://www.cnblogs.com/lsswudi/p/11295123.html