本帖最后由 月生春 于 2014-1-18 23:18 编辑
我是看了前面一位同学的问题:打印水仙花的问题 ? 他的问题我没能帮其解决,到给自己带来了问题,求帮助!
打印水仙花数! 所谓的“水仙花”是指一个三位数,其个位数的立方和等于该数本身。例如:153是一个水仙花数,因为153=(1的立方+5的立方+3的立方)。
我用我自己的方法能够打印任意一段数字内的水仙花数,也就是你输入一位数,它就会将0到这为数之间的水仙花数打印出来,我觉得我代码没什么问题,可为什么得不到结果呢?
代码如下:
package wsc.itheima.com;
import java.util.ArrayList;
import java.util.Iterator;
public class MyTest3 {
public static void main(String[] args) {
PrintNarcissus(1000);
}
private static void PrintNarcissus(int num){ //打印水仙花数的方法
for(int x=0;x<=num;x++){ //对传入的数遍历
ArrayList<Object> al=new ArrayList<Object>(); // 定义集合
int len=0;
String s = String.valueOf(x);//将整形转化为字符串 //转换成字符串
for(int y=0;y<s.length();y++){ //遍历
int n=Integer.parseInt(s.substring( y, y+1)); //截取每一位上的数,转换为整数
al.add(n*n*n); //将其立方值添加到集合中
}
Iterator<Object> it=al.iterator(); //迭代
while(it.hasNext()){
len+=(Integer)it.next(); //将其每位数上的立方值添加赋给len
}
if(len==num){ //判断是否符合情况,打印出来
System.out.println(num);
}
}
}
}
|