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

水仙花数

水仙花数定义:

  1. 一定是3位数
  2. 每一位的立方,加起来恰好是这个数本身,比如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

小学算术题

Java 基础题练习

 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
-------------------