解决方案 »

  1.   

    你这个 a b c都是定值了  a=1 b=0 c=0  num的判定永远失败
    a b c的赋值应该放到for循环里。
    而且得a b c取值也不对,看起来是想要取个位 十位 百位
    num%10    num/10%10  num/100%10
    个位                 十位                  百位
    剩下应该都没错了。
      

  2.   

    水仙花数有点数学的算法在里面,2种方式
    public class Text {
    public static void main(String[] args) {
    for(int i=0;i<10;i++){
    for(int j=0;j<10;j++){
    for(int l=0;l<10;l++){
    //将数字转换成字符串
    String str = String.valueOf(i)+String.valueOf(j)+String.valueOf(l);
    int num1 = Integer.parseInt(str);
    //Math.pow 数字的三次方
    int num = (int) (Math.pow(i,3)+Math.pow(j,3)+Math.pow(l,3));
    if(num1==num){
                         System.out.println(num);
    }
    }
    }
    }
    }
    }
    /*   这个就是你这样的直接取值的算法了
     * // 水仙花数开始 int i, j, k; for (int x = 100; x < 1000; x++) { i = x /
     * 100; j = (x / 10) % 10; k = x % 10; if (x == i * i * i + j * j * j +
     * k * k * k) { System.out.println(x + "、"); }
     * 
     * }
      

  3.   

    for(int i=1;i<1000;i++){
    int sum = 0;
    int result = 0;
    for(int j=i;j>0;j=j/10){
    sum = j%10;
    result += sum*sum*sum;
    }
    if(result == i){
    System.out.println(i);
    }
    }
      

  4.   

    您先给num赋值为100,后面当然按照100的数字算起啦··
      

  5.   

    public static void main(String[] args) {        for (int i = 100; i < 1000; i++) {
                int n3 = i / 100;
                int n2 = i / 10 % 10;
                int n1 = i % 10;            if (i == (Math.pow(n3, 3) + Math.pow(n2, 3) + Math.pow(n1, 3))) {
                    System.out.println(i);
                }
            }
        }结果:
    153
    370
    371
    407完整代码...楼主参考下吧
      

  6.   


    你这个高级了,但是我不明白Math.pow的用法,你能详细说明下吗?
      

  7.   


    你这个高级了,但是我不明白Math.pow的用法,你能详细说明下吗?这个一点也高级,Math.pow是求方的静态函数,Math.pow(5,2)是求5的平方,Math.pow(5,2)Math.pow(5,3)是求5的立方.
      

  8.   

    你一开始就给num赋值为100了,而且num应该是从scanner输入的
      

  9.   

    public class ShuiXianHua { public static void main(String[] args) {

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

    }

    }
    我试了下把abc放到循环里就好用了,结果153
    370
    371
    407
      

  10.   


    你这个高级了,但是我不明白Math.pow的用法,你能详细说明下吗?
    个人感觉这个代码的高级在于对个十百位数的合理取值。Math.pow(a,a)等同于a的a次方,初学者,有错勿喷
      

  11.   

    将定义的 a,b,c放到循环里面