Java 基础题练习
扎实基本功
黄金分割点
寻找某两个数相除,其结果 离黄金分割点 0.618最近
分母和分子不能同时为偶数
分母和分子 取值范围在[1-20]
float i, j, min = 1f, i1 = 1f, j1 = 1f;
for (i = 1f; i < 20; i++){
for (j = 1f; j < 20; j++){
if(i%2 == 0 && j%2 ==0)
continue;
float temp = (i/j - 0.618f) > 0? (i/j - 0.618f):(0.618f - i/j);
if(temp < min){
min = temp;
i1 = i;
j1 = j;
System.out.println(min);
}
}
}
System.out.println(i1 + "/" + j1 + "=" + i1/j1);
0.38200003
0.11799997
0.048666716
0.017999947
0.007000029
0.0026153326
8.0/13.0=0.61538464
水仙花数
水仙花数定义:
- 一定是3位数
- 每一位的立方,加起来恰好是这个数本身,比如153=111+555+333
寻找所有的水仙花数
int i;
for (i = 100; i <= 999; i++){
int t1 = i / 100;
int t2 = (i - t1*100) / 10;
int t3 = i - t1*100 - t2*10;
if(i == (t1*t1*t1 + t2*t2*t2 + t3*t3*t3)){
System.out.println(i);
}
}
153
370
371
407
小学算术题
int a, b , c, d;
for (a = 0; a <= 14; a++)
for (b = 0; b <= 14; b++)
for (c = 0; c <= 14; c++)
for (d = 0; d <= 14; d++){
if(a+b == 8 && a+c == 14 && c-d == 6 && b+d ==10){
System.out.println(a + " " + b);
System.out.println(c + " " + d);
System.out.println("-------------------");
}
}
3 5
11 5
-------------------