饭后一道题~天天好心情~
题目:打印所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
这道题我做的稍微代码长了些,思维方式导致~ 看了所谓的标准答案,比较简洁~这里都贴出来吧
先是我的:
- package day3;
- /**
- * 题目:打印所有的"水仙花数"
- * 所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
- *
- * @author yellowbaby
- *
- */
- public class Test {
- public static void main(String[] args) {
- int hundreds[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };// 百位
- int tens[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };// 十位
- int units[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };// 个位
- for (int unit : units) {
- for (int ten : tens) {
- for (int hundred : hundreds) {
- if(getCubSum(unit, ten, hundred) == getNormalSum(unit, ten, hundred)){
- System.out.println(getNormalSum(unit, ten, hundred));
- }
- }
- }
- }
- }
- /*
- * 得到该三位数三位的立方和
- */
- private static int getCubSum(int unit, int ten, int hundred) {
- return unit * unit * unit + ten * ten * ten + hundred * hundred
- * hundred;
- }
- /*
- * 得到该三位数的值
- */
- private static int getNormalSum(int unit, int ten, int hundred) {
- return unit + ten * 10 + hundred * 100;
- }
- }
复制代码 这是答案:
|