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

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器