当前位置:编程学习 > JAVA >>

循环求值问题之二

打印1到10000范围内的水仙花数。水仙花数是指一个三位数,各位数的立方和等于这个数。如153,1的立方加5的立方加3的立方等于153。这个做了很久还是没做出来。
--------------------编程问答--------------------

    public static void main(String[] args) {
      
     String s;
     int temp = 0;
     for(int i=100;i<1000;i++){
     s=String.valueOf(i);
     for(int j=0;j<s.length();j++){
     temp+=(int)Math.pow(Double.parseDouble(String.valueOf(s.charAt(j))), 3);
     }
     if(i==temp){
     System.out.println(i);
     }
     temp=0;
     }
    }
--------------------编程问答-------------------- 最笨的方法就是用循环了。没做出来?
for(int i=100;i<1000;i++){
int x=i%10;//取个位数
int y=i/100;//取百位数
int z=(i-y*100-x)/10;
if(x*x*x+y*y*y+z*z*z==i)
System.out.println(i);
}
--------------------编程问答--------------------
引用 2 楼 fw347969680 的回复:
最笨的方法就是用循环了。没做出来?
Java code?1234567for(int i=100;i<1000;i++){            int x=i%10;//取个位数            int y=i/100;//取百位数            int z=(i-y*100-x)/10;            if(x*x*x+y*y*y+z*z*z=……

既然水仙花为三位数 ,为什么还要1到10000范围内的水仙花数呢?  直接说100到1000之间不就行了。lz没看错问题? --------------------编程问答--------------------
引用 2 楼 fw347969680 的回复:
最笨的方法就是用循环了。没做出来?
Java code?1234567for(int i=100;i<1000;i++){            int x=i%10;//取个位数            int y=i/100;//取百位数            int z=(i-y*100-x)/10;            if(x*x*x+y*y*y+z*z*z=……

同意楼上!
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,