Java中计算水仙花数

找出水仙花数

下面是今天解决的问题,找出水仙花数,并统计出来


有规律的数字:

水仙花数:
  • 水仙花数(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分钟,虽然它很简单,但仍然包含了一个小程序的分析步骤,可谓是“麻雀虽小,五张俱全”。其实按照步骤解程序题目,目前所遇到的题目都是可以解决的。至今天为止,深刻的感受到学习编程语言要有很好的数学功底,现阶段的编程练习都只是计算初等数学的题目,希望自己坚持到高等数学阶段。

水仙花数


  • 第三天的学习思维导图
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/jiangyi_1612101_03/article/details/81266499