通过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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • git pull的时候发生冲突的解决方法之“error: Your local changes to the following files would be overwritten by merge

    git pull的时候发生冲突的解决方法之“error: Your local changes to the following files would be overwritten by merge

    2022年2月18日
    49
  • SQL去重语句_sql中文

    SQL去重语句_sql中文sql语句去重sql语句通过DISTINCT关键字去重,用于返回唯一不同的值。DISTINCT关键字需要搭配SELECT语句使用,语法为SELECTDISTINCT列名称FROM表名称。如果指定了SELECTDISTINCT,那么ORDERBY子句中的项就必须出现在选择列表中,否则会出现错误。扩展资料:distinct这个关键字用来过滤掉多余的重复记录只保留一条,但往往只用它…

    2022年10月1日
    3
  • JMM概述_jmi名词解释

    JMM概述_jmi名词解释简介什么是JMM内存模型可以理解为在特定的操作协议下,对特定的内存或者高速缓存进行读写访问的过程抽象描述,不同架构下的物理机拥有不一样的内存模型,Java虚拟机是一个实现了跨平台的虚拟系统,因此它也有自己的内存模型,即Java内存模型(JavaMemoryModel,JMM)。因此它不是对物理内存的规范,而是在虚拟机基础上进行的规范从而实现平台一致性,以达到Java程序能够“一次编写,到处运行

    2025年9月15日
    7
  • Integer和String转换[通俗易懂]

    Integer和String转换[通俗易懂]Integer和String相互转换//1、String转IntegerIntegervalue=Integer.parseInt(s);//2、int转StringString.valueOf(value);//Integer.toString(i)Integer.toString(value);//3、Integer转StringString.val…

    2025年7月8日
    5
  • Python面试常见问题_python面试问题总结

    Python面试常见问题_python面试问题总结Python是什么?简述并说明优点和缺点?Python是一种面向对象的解释性计算机编程语言,它是结合了解释性、编译性、互动性和面向对象的脚本语言。优点:开源、免费、简单、易学、可移植、可扩展、易维护、开发效率高。缺点:运行速度慢、代码不能加密。Python是如何被解释的?Python是一种解释性语言,它的源代码可以直接运行。Python解释器会将源代码转换成中间语言,之后再翻译…

    2022年10月7日
    4
  • 移动端app开发问题及理解

    移动端app开发问题及理解框架使用的是vant跟web端不太一样的是事件有点不同web端事件有onload页面中所有标签,文档,图片等资源加载完毕后触发onclick鼠标单击事件ondbclick鼠标双击事件onmousedown鼠标按下onmouseup鼠标按键抬起onmouseover鼠标进入某个元素onmousemove鼠标移动到元素onmouseout鼠标离开元素onfocus元素得到焦点onblur元素失去焦点onchange用户改变文本域内容oninput实时监听输入框

    2022年6月15日
    29

发表回复

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

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