审题:
- 水仙花数是一个三位数,所以只要判断100到999之间即可
- 如何把单个数字拿出来
<做法一>用字符串把单个数字拿出来
package daffodil;
public class DaffodilDemo {
//写一个方法判断是否是水仙花数
public void decise() {
//按照顺序把这个字符串的数字拿出来,然后把立方后的值加到number里面
for (int i = 100; i <1000; i++) {
//把number放入循环里,这样每次都会清零
int number=0;
//把数字放到字符串,有三种方式
//String str1=""+i;
//String str2=Integer.toString(i);
String str=String.valueOf(i);
for (int j = 0; j < 3; j++) {
number+=Math.pow((Integer.valueOf(str.substring(j, j+1))), 3);
}//for
if(number==i) {
System.out.println(i+"是水仙花数");
}//if
}//for
}//decise
}//DaffodilDemo
package daffodil;
public class Test {
public static void main(String[] args) {
DaffodilDemo dd=new DaffodilDemo();
dd.decise();
}
}
<做法二>用取余的方式把单个数字拿出来
package daffodil;
public class DaffodilTwo {
public static void main(String[] args) {
int a,b,c;
for (int i = 100; i <1000; i++) {
//拿到百位数
a=i/100;
//两种方式拿到10位数
// b= i % 100 / 10;
b=i/10%10;
//拿到个位数
c=i%10;
if(a*a*a+b*b*b+c*c*c==i) {
System.out.println(i+"是水仙花数");
}
}
}
}