一、练习--黄金分割点
题目:
寻找某两个数相除,其结果 离黄金分割点 0.618最近
分母和分子不能同时为偶数
分母和分子 取值范围在[1,20] (即1到20)
要求效果:
public class HelloWorld { public static // 寻找某两个数相除,其结果 离黄金分割点 0.618最近 // 分母和分子不能同时为偶数 // 分母和分子 取值范围在[1-20] int range = 20; // 取值范围 float breakPoint = 0.618f; // 黄金分割点 float minDiff = 100; // 离黄金分割点的差值 int answerFenzi = 0; // 找到的分子 int answerFenmu = 0; // 找到的分母 for (int fenzi = 1; fenzi <= range; fenzi++) { for (int fenmu = 1; fenmu <= range; fenmu++) { // 分母和分子不能同时为偶数 if (0 == fenzi % 2 & 0 == fenmu % 2) continue; // 取值 float value = (float) fenzi / fenmu; // 取离黄金分割点的差值 float diff = value - breakPoint; // 绝对值 diff = diff < 0 ? 0 - diff : diff; // 找出最小的差值 if (diff < minDiff) { minDiff = diff; answerFenzi = fenzi; answerFenmu = fenmu; } } } System.out.println("离黄金分割点(" + breakPoint + ")最近的两个数相除是:" + answerFenzi + "/" + answerFenmu + "=" + ((float) answerFenzi / answerFenmu)); } } |
二、练习--水仙花数
水仙花数定义:
1. 一定是3位数
2. 每一位的立方,加起来恰好是这个数本身,比如153=1*1*1+5*5*5+3*3*3
寻找所有的水仙花数
要求效果:
public class HelloWorld { public static for (int i = 100; i < 1000; i++) { int baiwei = i / 100; int shiwei = i / 10 % 10; int gewei = i % 10; int cube = baiwei * baiwei * baiwei + shiwei * shiwei * shiwei + gewei * gewei * gewei; if (cube == i) { System.out.println("找到水仙花数:" + i); } } } } |
三、练习--小学算术题
题目:
提示使用多层循环嵌套解决下图中的问题
官方答案:
public class HelloWorld { public static int a = 0; int b = 0; int c = 0; int d = 0; for (a = -100; a <= 100; a++) { for (b = -100; b <= 100; b++) { for (c = -100; c <= 100; c++) { for (d = -100; d <= 100; d++) { if(a+b==8&&c-d==6&&a+c==14&&b+d==10) System.out.println("a:"+a); System.out.println("b:"+b); System.out.println("c:"+c); System.out.println("d:"+d); } } } } } } } |