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


相关推荐

  • booth算法原理的简单化理解「建议收藏」

    booth算法原理的简单化理解「建议收藏」最近,在学习带符号二进制数乘法(multiplicationof signednumbers)时接触到了布思算法(boothalgorithm)。由于是第一次接触,对于其原理却一无所知,书上的解释以及网上的文章不知是自己才疏学浅还本来就是泛泛而谈,没有让我了解其本质。经过长时间的思考分析,最终找到了一种比较简单的理解方法。举一个简单的例子,比如说计算10100001×00111110,

    2025年8月14日
    1
  • Gradle下载慢解决方案

    Gradle下载慢解决方案参考:阿里云公共代理库首先我们来看看google官方的依赖方式:buildscript{repositories{mavenCentral()jcenter()google()}dependencies{classpath’com.android.tools.build:gradle:3.0.1′}}allprojects{repositories{

    2022年6月15日
    27
  • Android 开机动画的制作「建议收藏」

    Android 开机动画的制作「建议收藏」最近项目需要对项目Android设备进行开机动画的替换,此项需求操作比较简单,但是也有一些细节需要注意,分享给有需求的极客们开机动画的制作、替换流程。

    2022年5月14日
    54
  • offsetHeight, clientHeight与scrollHeight的区别

    offsetHeight, clientHeight与scrollHeight的区别在网上搜了一下,结论非常笼统,讲IE从不讲版本,因此自己做了测试并上传结论。以下结论皆是在标准模式下测试通过的,没有测试quirk模式。clientHeight大部分浏览器对clientHeight都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,即然是指可看到内容的区域,滚动条不算在内。但要注意padding是算在内。其计算方式

    2022年7月23日
    11
  • Oracle常用操作

    Oracle常用操作

    2021年9月3日
    53
  • grid常用设置

    grid常用设置父元素1.dispaly:grid|inline-grid|subgrid;grid:生成块级网格inline-grid:生成行内网格subgrid:如果网格容器本身是网格项(嵌套网格容器),此属性用来继承其父网格容器的列、行大小2.grid-template-columns行大小grid-template-rows列大小3.单元格间距grid-column-…

    2022年7月27日
    13

发表回复

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

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