首页 > 编程知识 正文

打印输出所有四叶玫瑰数,四叶玫瑰数

时间:2023-05-04 01:51:57 阅读:278949 作者:4585

四叶玫瑰数数:是一个四位数   数的每一个数制位上的数字的4次方和等于数字本身  

分析:想要找到四叶玫瑰数必须从1000到9999 之间所有的数字中去寻找【对所有三位数进行判断】,这就需要循环了。

具体代码实现:

public class RoseAmount {public static void main(String[] args) {fourLeafRose();}public static void fourLeafRose() {//定一个个记录次数的变量int count = 0;//判断所有的四位数for(int num = 1000; num < 10000; num++) {//获取个位上的数字int theUnit = num % 10;//获取十位上的数字int decade = num / 10 % 10;//获取百位上的数字int hundreds = num / 100 % 10;//获取千位上的数字int kilobit = num / 1000;//将每一个数制位上的数字四次方并加起来/*double num1 = Math.pow(theUnit, 4);double num2 = Math.pow(decade, 4);double num3 = Math.pow(hundreds, 4);double num4 = Math.pow(kilobit, 4);*///int sum = (int)(num1 + num2 + num3+ num4);int num1 = theUnit * theUnit * theUnit * theUnit;int num2 = decade * decade * decade * decade;int num3 = hundreds * hundreds * hundreds * hundreds;int num4 = kilobit * kilobit * kilobit * kilobit;int sum = num1 + num2 + num3 + num4;//判断和数字是否相等if(num == sum) {count ++;//打印四叶玫瑰数System.out.println(num);}}System.out.println("四叶玫瑰数一共有:" + count + "个");}}

代码运行结果展示:

1634
8208
9474
四叶玫瑰数一共有:3个

相同的例子还有水仙花数,基本思路都是一样的,只不过水仙花数是从三位数里面找的,下面展示它的代码实现,以供大家参考。

 基本代码实现:

public class Daffodil {public static void main(String[] args) {daffodilNum();}public s一分快三大小单双位技巧准确率99/ 10 % 10;//获取百位上的数字int hundreds = num / 100 % 10;//获取千位上的数字int kilobit = num / 1000;//将每一个数制位上的数字四次方并加起来/*double num1 = Math.pow(theUnit, 4);double num2 = Math.pow(decade, 4);double num3 = Math.pow(hundreds, 4);double num4 = Math.pow(kilobit, 4);*///int sum = (int)(num1 + num2 + num3+ num4);int num1 = theUnit * theUnit * theUnit * theUnit;int num2 = decade * decade * decade * decade;int num3 = hundreds * hundreds * hundreds * hundreds;int num4 = kilobit * kilobit * kilobit * kilobit;int sum = num1 + num2 + num3 + num4;//判断和数字是否相等if(num == sum) {count ++;//打印四叶玫瑰数System.out.println(num);}}System.out.println("四叶玫瑰数一共有:" + count + "个");}}

代码运行结果展示:

1634
8208
9474
四叶玫瑰数一共有:3个

相同的例子还有水仙花数,基本思路都是一样的,只不过水仙花数是从三位数里面找的,下面展示它的代码实现,以供大家参考。

 基本代码实现:

public class Daffodil {public static void main(String[] args) {daffodilNum();}public static void daffodilNum() {// 1、定义一个计数器int count = 0;// 判断所有的三位数 // 2、先获取每一个三位数for (int num = 100; num < 1000; num++){// 取到三位数进行判断// 3、获取每个数制位上面的数字int g = num % 10;int s = num / 10 % 10;int b = num / 100 % 10;// 4、三次方和求取int sum1 = g*g*g + s*s*s + b*b*b;// 5、判断求取的和和数字是否相等if (sum1 == num){// 找到水仙花数需要计数count++;// 输出水仙花数System.out.println("第" + count + "个水仙花数为:" + num );}}// 打印水仙花数的个数 System.out.println("水仙花数的个数为" + count );}}

代码运行效果:

第1个水仙花数为:153
第2个水仙花数为:370
第3个水仙花数为:371
第4个水仙花数为:407
水仙花数的个数为4

如果您觉得有什么错误的地方,还请多多指点 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。