int a, b, c;
for (int i = 100; i < 1000; i++) {
a = i / 100;
b = i / 10 % 10;
c = i % 10;
int k = a * 100 + b * 10 + c;
if(a*a*a+b*b*b+c*c*c==k){
System.out.println(k);
}
}

解决方案 »

  1.   


    a*a*a*a*a*a*a*a+b*b*b*b*b*b*b*b+c*c*c*c*c*c*c*c == k
      

  2.   

    if(a*a*a+b*b*b+c*c*c==k)
    换成if((int)(Math.pow(a,8)+Math.pow(b,8)+Math.pow(c,8))==k)
    楼主是这个意思不?其中Math.pow(a,8)是求a的8次方
      

  3.   

    [Quote=引用 2 楼 graphy 的回复:]哈
    Java code
    a*a*a*a*a*a*a*a+b*b*b*b*b*b*b*b+c*c*c*c*c*c*c*c == k
     你可以自己试试 好像 要用long的了哦
     还有这个方法好像不行 必须对我的代码进行优化。
      

  4.   


    long s, t, n = 8;
    for (long i = (long) Math.pow(10, n - 1); i < Math.pow(10, n); i++) {
    s = 0;
    for (int j = 1; j <= n; j++) {
    if (j == 1)
    t = i % 10;
    else
    t = (long) (i % Math.pow(10, j) / Math.pow(10, j - 1));
    s += Math.pow(t, n);
    }
    if (s == i) {
    System.out.println(s);
    }
    }
    System.out.println("over");
      

  5.   


            long s, t, n = 4;
    for (long i = (long) Math.pow(10, n - 1); i < Math.pow(10, n); i++) {
    s = 0;
    for (int j = 1; j <= n; j++) {
    t = (long) (i % Math.pow(10, j) / Math.pow(10, j - 1));
    s += Math.pow(t, n);
    }
    if (s == i) {
    System.out.println(s);
    }
    }
    System.out.println("over");
      

  6.   


           long s, t, n = 8;
            for (long i = (long) Math.pow(10, n - 1); i < Math.pow(10, n); i++) {
                s = 0;
                for (int j = 1; j <= n; j++) {
                    t = (long) (i % Math.pow(10, j) / Math.pow(10, j - 1));
                    s += Math.pow(t, n);
                }
                if (s == i) {
                    System.out.println(s);
                }
            }
            System.out.println("over");
      

  7.   

    哥们 这不行 其实我要的是21 和12  只是想8 然后我在自己想想 然而你这个 八效率不行 太久才运行一个 要优化 谢谢Java code       long s, t, n = 8;
            for (long i = (long) Math.pow(10, n - 1); i < Math.pow(10, n); i++) {
                s = 0;
                for (int j = 1; j <= n; j++) {
                    t ……
      

  8.   

    long s, t, n = 8;
    for (long i = (long) Math.pow(10, n - 1); i < Math.pow(10, n); i++) {
    s = 0;
    for (int j = 1; j <= n; j++) {
    t = (long) (i % Math.pow(10, j) / Math.pow(10, j - 1));
    s += Math.pow(t, n);
    }
    if (s == i) {
    System.out.println(s);
    }
    }
    System.out.println("over");