【程序3】
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
package com.share.test01_10;
/**
* 【程序3】题目:<br>
* 打印出所有的 "水仙花数 ",所谓 "水仙花数 " 是指一个三位数,其各位数字立方和等于该数本身。<br>
* 例如:153是一个 "水仙花数 " ,因为153=1的三次方+5的三次方+3的三次方。
*
* @author brx
*/
public class Test03 {
public static void main(String[] args) {
test1();
}
/**
* test()方法简述:<br>
* 思路:将一个数的个十百位分别分离出来,然后将判断它们的立方和是否等于它本身<br>
* 思路1:整形数据处理<br>
* 思路2:字符串处理
*
* @param s
* 个位(singles)
* @param t
* 十位(tens)
* @param h
* 百位(hundreds)
*
*/
public static void test() {
System.out.println("水仙花数:");
for (int i = 100; i < 1000; i++) {
int s = i % 10;
int t = i % 100 / 10;
int h = i / 100;
if (i == s * s * s + t * t * t + h * h * h) {
System.out.println(i);
}
}
}
/**
* 思路2
*/
public static void test1() {
System.out.println("水仙花数:");
for (int i = 100; i < 1000; i++) {
String str = String.valueOf(i);
int s = Integer.parseInt(String.valueOf(str.charAt(2)));
int t = Integer.parseInt(String.valueOf(str.charAt(1)));
int h = Integer.parseInt(String.valueOf(str.charAt(0)));
if (i == s * s * s + t * t * t + h * h * h) {
System.out.println(i);
}
}
}
}
网友评论