通过Java实现求水仙花数「建议收藏」

通过Java实现求水仙花数「建议收藏」用户输入一个数,判断是否是”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方。程序同用户交互是通过Scanner来实现的,jdk中封装了一个类Scanner,该类的职责就是接收键盘的输入值,并保存到程序的变量中,体现了程序和用户的交互功能,适合新手学习。

大家好,又见面了,我是你们的朋友全栈君。

题目:用户输入一个数,判断是否是”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

  • 1.导包(作为当前类的引用)
import java.util.Scanner;

jdk中封装了一个类Scanner,该类的职责就是接收键盘的输入值,并保存到程序的变量中,体现了程序和用户的交互功能。

  • 2.创建对象
Scanner sc=new Scanner(System.in);//在输入Scanner时,按住回车键会自动导入上面的包
  • 3.对象调用方法来接收输入值
int X=sc.nextInt();//X是用户输入的数
  • 4.先求出各位数上的数字

这里我们需要用到两个运算符:/%

“/”在数学中是除的意思,但在Java中却是作为一种运算符,用来取整。用法为:比如3/2,在数学中是3/2=1.5,但在Java中3除以2等于1,因为取整,后面的小数0.5会被程序舍弃。
“%”平常是一种百分号,但在Java中也是作为一种运算符,用来取模。用法为:比如10%3为3余1,此时程序生成的结果就是1.

		int a,b,c,sum;//定义几个变量
		a=X/100;//得到百位上的数字
        b=X%100/10;//得到十位上的数字
        c=X%100%10;//取模得到个位上的数字
  • 5.求各位数的立方之和
sum=a*a*a+b*b*b+c*c*c;
  • 6.通过if…else语句判断各位数字立方和是否等于该数本身
		if (sum==X){ 
   //如果用户输入的数x与各位数字立方相等,该数即为水仙花
            System.out.println(X+"是水仙花数" );
        }else如果用户输入的数x与各位数字立方不等,该数就不是水仙花
            System.out.println(X+"不是水仙花数");

完整代码展示如下:

import java.util.Scanner;

public class Narcissus { 
   
    public static void main(String[] args) { 
   
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个数:");
        int X=sc.nextInt();
        int a,b,c,sum;
      
        a=X/100;
        b=X%100/10;
        c=X%100%10;
        
        sum=a*a*a+b*b*b+c*c*c;
        
        if (sum==X){ 
   
            System.out.println(X+"是水仙花数" );
        }else
            System.out.println(X+"不是水仙花数");
    }

测试一下:

请输入一个数:
153
153是水仙花数
请输入一个数:
123
123不是水仙花数

其实,水仙花数也就那么几个,我们不妨用循环求出所有的水仙花数

//要求输入所有的水仙花数(其实就是从100到999之间的,已经给定了的)
public class TestNarcissus { 
   
    public static void main(String[] args) { 
   
        for(int i =100;i<=999;i++) { 
   //保证是一个三位数,这是前提条件
            int a=i/100;
            int b=i%100/10;
            int c=i%100%10;
            int sum=a*a*a+b*b*b+c*c*c;
            if (sum==i){ 
   
                System.out.println(i+"是一个水仙花数");
            }
        }
    }
}
//原理和上面的一样,就是加个for循环

输出一下看看:

153是一个水仙花数
370是一个水仙花数
371是一个水仙花数
407是一个水仙花数

以上就是全部的水仙花数了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157114.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WordPress建站_如何建设社区

    Wordpress建站_如何建设社区创始人或建设者,您需要了解将社区集成到您的项目中的哪些内容?采用什么样的去中心化的方式?”在2020年之前,我花了很多时间分析中心化社区建设最佳实践的来龙去脉,主要来自我作为用户(Foursquare、Meetup、Twitter),作为一名员工(StackOverflow),或者在我在UnionSquareVentures期间通过渗透了解到的成功Web2网络示例。…

    2022年10月2日
    0
  • Linux下编写GT911触摸驱动

    Linux下编写GT911触摸驱动问题一:资源获取Gt911数据手册在韦老师给的资料里,路径为\06_Datasheet\Extend_modules\7寸LCD模块\电容触控芯片GT911Datasheet_121120(海威思.pdf问题二:需要准备哪些知识1.能够修改设备树2.能够编写字符设备驱动3.能够在linux下编写中断程序4.能够在linux下编写IIC收发程序5.了解input子系统6.移植tslib(用于校准,测试触摸屏)gt911硬件连接(韦老师的板子):可以看到gt911只

    2022年6月16日
    308
  • 清华大学团队:人脸识别爆出巨大丑闻,15分钟解锁19款手机

    清华大学团队:人脸识别爆出巨大丑闻,15分钟解锁19款手机1清华大学的RealAI团队15分钟解锁19款手机刚刚,清华大学的一条重大发现,利用人脸识别技术的漏洞,“15分钟解锁19个陌生智能国产手机”的事件,引发无数网友关注。据悉,清华大学的RealAI团队共选取了20款手机,其中1款是国外的,另外19款都是我们国产的智能手机,居来自排名前五的国产手机品牌,每一品牌下选取了3-4款不同价位的手机型号,覆盖低端机到旗舰机。1)测试步骤如下:第一步,清华大学的测试人员,把19部国产手机,人脸识别全部绑定为旁边的“1号同学”;

    2022年6月5日
    139
  • eclipse maven 报错Could not get the value for parameter encoding for plugin execution default

    eclipse maven 报错Could not get the value for parameter encoding for plugin execution default

    2022年3月3日
    50
  • 十分钟带你理解Kubernetes核心概念

    十分钟带你理解Kubernetes核心概念

    2021年6月12日
    175
  • iphone android换机助手下载,腾讯换机助手手机最新版 目前最好用的安卓/苹果一键换机工具…

    iphone android换机助手下载,腾讯换机助手手机最新版 目前最好用的安卓/苹果一键换机工具…换机助手软件介绍换机助手是腾讯开发的一款跨平台手机资料迁移工具,它可以在安卓与安卓,苹果与苹果,安卓与苹果手机之间进行数据迁移,安卓手机可以直接在下面下载APP,而苹果手机则需要在自带的APPSTORE中搜索“换机助手”下载安装,这也是非常实用的一款程序了!换机助手软件功能:该软件可以通过调用手机创建热点,进行两部手机匹配互联,零消耗网络流量传输手机资料。目前已支持安卓Android与苹果iOS…

    2022年5月26日
    72

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号