黑马程序员技术交流社区
标题:
求N位水仙花数
[打印本页]
作者:
zhujunjie1994
时间:
2016-5-17 14:54
标题:
求N位水仙花数
求水仙花数。所谓水仙花数,是指一个数 abc,如果满足 a3+b3+c3=abc,则 abc 是水仙花数
abcd,如果满足a4+b4+c4+d4=abcd,则abcd是水仙花数
以此类推 输入一个N来代表数字的位数,输出从三位到N位的所有水仙花数。
作者:
ancheng
时间:
2016-5-17 22:47
import java.util.Scanner;
public class 水仙花数2 {
private static Scanner scan;
public static void main(String[] args) {
scan = new Scanner(System.in);
int n = scan.nextInt();
long startTime = System.currentTimeMillis();
for (int i = 10; i <= n; i++) {
if (isDaffodilNumber(i)) {
System.out.println(i + " 是水仙花数.");
}
}
long endTime = System.currentTimeMillis();
System.out.println("运行时间是: " + (endTime - startTime));
}
private static boolean isDaffodilNumber(int i) {
int s = 0;
int n = (i + "").length(); // 计算数字串的长度
for (int j = 1; j <= n; j++) { // 循环处理数字串
int t1 = (int) (i / Math.pow(10, j - 1)); // 截取数字串,从前往后
int t2 = (int) (Math.pow((t1 % 10), n)); // 提取最后一位数字,计算其n次方
s += t2;
}
if (s == i) {
return true;
} else {
return false;
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2