java实现8位以为的自幂数(水仙花数)
2018-01-22 17:44
549 查看
/** * 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, * PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number); 水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 * n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。 水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。 * 附:其他位数的自幂数名字 * 一位自幂数:独身数 * 两位自幂数:没有 * 三位自幂数:水仙花数 * 四位自幂数:四叶玫瑰数 * 五位自幂数:五角星数 * 六位自幂数:六合数 * 七位自幂数:北斗七星数 * 八位自幂数:八仙数 * 九位自幂数:九九重阳数 * 十位自幂数:十全十美数 * * @author idea-pcfff * */ public class Narcissistic { /** * 计算 8位以内的自幂数 * @param weishu */ public static void armstrongLessThan8Bit(int weishu) { int max = (int) Math.pow(10, weishu) - 1; int num = (int)Math.pow(10, weishu-1); int a[] = new int[weishu]; System.out.print(weishu + "位的水仙花数有:\t"); while (num <= max) { int sum = 0; for (int i = 0; i < weishu; i++) { a[i] = num / (int) Math.pow(10, weishu - i - 1) % 10; } for (int i = 0; i < weishu; i++) { sum = sum + (int) Math.pow(a[i], weishu); } if (num == sum) { System.out.print(num + "\t"); } num++; } } public static void main(String[] args) { armstrongLessThan8Bit(3); } }
相关文章推荐
- Java实现水仙花数
- java实现水仙花数算法
- java所有N位数之内的自幂数(3位数的自幂数也叫水仙花数)
- java 实现(代码) -- 水仙花数 + 杨辉三角形
- Java实现判断素数和水仙花数
- java--水仙花数计算两种实现方法
- java基础--while循环实现水仙花数
- Java实现24位真彩转换为8位灰度图片
- Java实现水仙花数【三位数】
- java语言实现水仙花数
- 数论——水仙花数问题(Java实现)
- 用java如何实现将16位图像转换为8位图像
- 水仙花数java实现
- java计算自幂数和水仙花数
- 关于水仙花数 java 实现
- 21位水仙花数用java实现
- java实现水仙花数
- java基础--do..while循环实现水仙花数
- java实现水仙花数
- 从一个ConnectionPool的实现看design pattern的运用 (source code for Java 1.1)