原题:
寻找某两个数相除,其结果 离黄金分割点 0.618最近
分母和分子不能同时为偶数
分母和分子 取值范围在[1-20]
解题思路:
使用两个for循环,分子/分母减去黄金分割点,比较差值大小,当差值最小时,分子分母大小。
失误:
1)忘记一开始就定义一个最小差值
2)不会换算绝对值。【方法:X>Y?a:b】
最终程序
**public class lianxi1 {
public static void main(String[] args){
float fenzi=0,fenmu=0;
float shang=0,cha=0;
float mincha=40;
int answerfenzi=0,answerfenmu=0;
for(fenmu=1;fenmu<=20;fenmu++){
for(fenzi=1;fenzi<=20;fenzi++){
if(fenzi%2==0&&fenmu%2==0)
continue;
shang=fenzi/fenmu;
cha=shang-0.618f;
cha=cha<0?0-cha:cha;//转换成绝对值
if(cha<mincha){
mincha=cha;
answerfenzi=(int)fenzi;
answerfenmu=(int)fenmu;
}
}
}
System.out.println("分子"+answerfenzi+"分母"+answerfenmu);
}
}**