hi_kevin 2012-03-01 14:35
浏览 194
已采纳

求一道java面试算法题 如下

求A³+B³+C³=D³ ABCD∈(0-999) 求ABCD
:( 当时想到的最笨的方法就是for循环的嵌套,从效率方面考虑,请教其它算法

  • 写回答

10条回答 默认 最新

  • qiemengdao 2012-03-01 22:46
    关注

    下面是我的代码,在没有打印的情况下在我机器上是1948ms
    [code]
    long start = System.currentTimeMillis();
    int[] cubeArray = new int[1000];
    for (int i = 0; i < 1000; i++) {
    cubeArray[i] = i * i * i;
    }
    for (int a = 1; a <= 999; a++) {
    for (int b = a; b <= 999; b++) {
    for (int c = b; c <= 999; c++) {
    for(int d=c+1;d<=999;d++)
    if(cubeArray[a]+cubeArray[b]+cubeArray[c]==cubeArray[d]);
    // System.out.printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
    }
    }
    }
    System.out.println(System.currentTimeMillis()-start);
    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?