java水仙花数,打印出所有的“水仙花数“,统计水仙花个数,如何获取三位数或者多位数对应得个十百千位上的数字。java如何计算次方数讲解

java经典练习题


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

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

public static void main(String[] args) {
        int count=0;
        for (int i = 100; i <=999 ; i++) {
            int ge = i%10;
            int shi = i/10%10;
            int bai = i/10/10;
            if (Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(bai,3) == i){
                System.out.println(i);
                count++;
            }
        }
        System.out.println("共有"+count+"个水仙花数");
		System.out.println(3^3);//这行是为了告诉你们这不是次幂的运算
    }

题目讲解:(如何获取对应位置上的数字)
   首先我们要复习以下除于(/)除余(%),他们两个区别在于一个在于舍弃余数,一个在于取余数,恰巧相反。(例如:17%10得7;而17/10则得1。)
1.获取个位上的数:
    循环数(i)%10;
2.获取十位上得数:
    循环数(i)/10%10;
3.获取百位上得数字:
    循环数(i)/10/10;
…以此类推可获取个各种数字位置上的对应数字。
    接下来我们需要了解Math工具类的一种方法:
   Math.pow(9,3) 可以看成数学里的9的3次方(9^3这个在java里不是计算次方而是位运算)

程序运行结果:

153
370
371
407
共有4个水仙花数
0

方法不唯一,仅供参考

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值