注册 登录
编程论坛 JAVA论坛

java自学之初级篇:麻烦各位老师看下 运行之后什么都没哟答应出来!

jscs_he 发布于 2016-03-23 15:03, 2916 次点击
class  zuoye3
{
    /*
        求水仙花数,所谓水仙花数
        是指一个三位数abc 如果满足 a3+b3+c3=abc
        则abc是水仙花数.打印所有的水仙花数;
        思路:百度得知水仙花数是值3位数所以最大值也就是999
        
    */
    public static void main(String[] args)
    {    int sum = 0;
        int n = 0;
        while (n<1000)
        {   
            int a = 0;
            int b = 0;
            int c = 0;
            a=n%10;
            b=n/10%10;
            c=n/100;
            sum= c*c*c+b*b*b+a*a*a;
            n++;
        
            if (n==sum)
            System.out.print(n);
        }
        
    }
}
6 回复
#2
grmmylbs2016-03-23 15:16

n++放错了地方
public class  zuoye3
{
    /*
        求水仙花数,所谓水仙花数
       是指一个三位数abc 如果满足 a3+b3+c3=abc
        则abc是水仙花数.打印所有的水仙花数;
        思路:百度得知水仙花数是值3位数所以最大值也就是999
        
    */
    public static void main(String[] args)
    {    int sum = 0;
        int n = 0;
        while (n<1000)
        {   
            int a = 0;
            int b = 0;
            int c = 0;
            a=n%10;
            b=n/10%10;
            c=n/100;
            sum= c*c*c+b*b*b+a*a*a;
            
        
            if (n==sum)
            System.out.println(n);
            n++;
        }
        
    }
}
#3
jscs_he2016-03-23 15:21
回复 2楼 grmmylbs
谢谢,果然可以了,为什么会放下面就会可以了呢!老师麻烦解释下!.
#4
grmmylbs2016-03-23 15:33
你要判断当前的n与计算后sum的值是否相等,n++后就不是n了。比如本来153满足要求,sum的值也是153,但你在比较之前进行n++,就变成154与153比较了。
#5
jscs_he2016-03-23 15:48
回复 3楼 jscs_he
谢谢,瞬间明白了!
#6
小二狗2016-03-29 10:14
我是这么写的,用的for循环
public class mystory4 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
          for(int i=100;i<=999;i++)
          {
           int geWei,shiWei,baiWei;
           baiWei=i/100%100;
           shiWei=i/10%10;
           geWei=i/1%10;
           if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei)
           {
            System.out.println(i);
           }
          }
    }
}
1