C++中如何读取一个数的位数_Java最经典面试题详解-判断一个数是不是水仙花数...

C++中如何读取一个数的位数_Java最经典面试题详解-判断一个数是不是水仙花数..._第1张图片

相信大家都知道水仙花这种植物,一种还算是比较好看的植物,但是你听说过一个叫做“水仙花数”的植物吗?/偷笑

今天一个朋友私信问我这个题呢,给他解决完问题之后想起了当年面试的时候被这道题给支配的恐惧,所以现在在这里给大家讲解一下这道题的解决思想与解决原理。

首先,了解题目。

所谓“水仙花数”是指这样一个数,其个位数字的立方和等于该数的本身。例如:3

71是一个“水仙花数”,371=3^3+7^3+1^3。

题目要求:输入一个三位数,输出1或0,1代表此数为水仙花数,0代表此数不是水仙花数。

C++中如何读取一个数的位数_Java最经典面试题详解-判断一个数是不是水仙花数..._第2张图片

接下来,整理解题思路。

要验证这个数是不是“水仙花数”,首先我们要将这个三位数拆分开。这个数百位的数字,十位的数字,个位的数字。然后将得到的每个数进行立方和的相加,并且与原数字进行对比,如果值为true,输出1;如果值为flase,输出0。

思路整理完毕,我们接下来整理代码。

1、要求程序可以接收到键盘输入的三位数字。引入Scanner类,使程序可以接受键盘输入的数字。代码如下所示

Scanner sc = new Scanner(System.in);

2、从输入的三位数中挨个取数。

取百位数:int a = num / 100;

取十位数:int b = (num / 10) % 10;

取个位数:int c = num % 10;

3、将每位数字的立方进行求和,然后与原数字进行对比。

if (a * a * a + b * b * b + c * c * c == num) { System.out.println("1");} else { System.out.println("0");}

然后,将思路代码进行拼接,并运行测试。

C++中如何读取一个数的位数_Java最经典面试题详解-判断一个数是不是水仙花数..._第3张图片

这只是一个非常简单的Java面试题了,在不同的阶段,Java的面试题也不尽相同,比这道题难得也是数不胜数了,接下来的日子里,将会持续的跟大家分享不同的面试题。

请大家持续关注我,不定期更新。另外给大家准备了一份小白入门的Java小项目。通过下面的方式可以联系我,然后跟我要这个项目就可以了。

  • 关注我,并转发收藏本文章
  • 私信“学习”即可

你可能感兴趣的:(C++中如何读取一个数的位数,java,水仙花讲解)