找出水仙花数
下面是今天解决的问题,找出水仙花数,并统计出来
有规律的数字:
水仙花数:
- 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
自幂数:
- 三位自幂数:水仙花数,四位自幂数:四叶玫瑰数,五位自幂数:五角星数,六位自幂数:六合数,七位自幂数:北斗七星数,八位自幂数:八仙数,九位自幂数:九九重阳数,十位自幂数:十全十美数。
题目分析:
/*
题目:打印出所有的”水仙花数”,
所谓”水仙花数”是指一个三位数,
其各位数字立方和等于该数本身。
例如:153是一个”水仙花数”,
153=1^3+5^3+3^3
程序分析:
1.得到所有的三位数
2.将得到的三位数分解成,个位、十位、百位
3.用条件判断语句判断该数是否是水仙花数,返回一个boolean值
4.判断循环条件,执行循环体
变量个数:
个位:int a ;十位:int b;百位 int c;
数学公式:n = a*a*a + b*b*b +c*c*c;
*/
public class DaffodilNumb{
public static void main(String[] args){
//定义一个计数器用于统计水仙花个数
int c = 0;
//得到所有的三位数
for(int i = 100; i < 1000; i++){
if(isDaffodilNumb(i)){
c++;
System.out.println(i);
}
}
System.out.println("水仙花数的个数:"+c);
}
//创建一个方法用于判断是否是水仙花数
public static boolean isDaffodilNumb(int n){
//分解三位数
//个位数
int a = n % 10;
//十位数
int b = (n / 10) % 10;
//百位数
int c = n / 100;
//判断是否是水仙花数
if(n==(a*a*a +b*b*b+c*c*c)){
return true;
}else{
return false;
}
}
}
总结:
练习写程序的第三天,今天解决的题目十分的简单,所用的时间不到10分钟,虽然它很简单,但仍然包含了一个小程序的分析步骤,可谓是“麻雀虽小,五张俱全”。其实按照步骤解程序题目,目前所遇到的题目都是可以解决的。至今天为止,深刻的感受到学习编程语言要有很好的数学功底,现阶段的编程练习都只是计算初等数学的题目,希望自己坚持到高等数学阶段。
- 第三天的学习思维导图