您的位置:首页 > 移动开发 > 微信开发

每天一个java小程序-3

2013-07-08 16:10 441 查看


JAVA练习题,能做多少就做多少。http://bbs.csdn.net/topics/110067294

这个是从CSDN看到的。每天一个吧 。

【程序3】

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

这个好像除了它分析的这个方法没什么办法了,就这样吧。

==== Main.java ====
package main;

import narcissistic.Narcissistic;

public class Main {

public static void main(String[] args) {

Narcissistic nar = new
Narcissistic();

nar.getNarcissistic();

nar.printNarcissistic();

}
}

===== Narcissistic.java =====

package narcissistic;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Narcissistic {

public boolean isNarcissistic(int i3, int i2,
int i1, int value) {

if ((Math.pow(i3, 3) +
Math.pow(i2, 3) + Math.pow(i1, 3)) == value) {

return
true;

} else {

return
false;

}

}

public List getNarcissistic() {

int i;

if (narcissistic == null)
{

narcissistic = new ArrayList();

}

for (i = 100; i <= 999;
i++) {

int i3,
i2, i1;

i1 = i %
10;

i2 = (i /
10) % 10;

i3 = (i /
100) % 10;

if
(isNarcissistic(i3, i2, i1, i)) {

narcissistic.add(i);

}

}

return narcissistic;

}

public void printNarcissistic() {

Iterator it =
narcissistic.iterator();

while (it.hasNext()) {

int tmp =
it.next();

System.out.println(tmp);

}

}

private List narcissistic;
}

第三题结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: