欢迎来到天天文库
浏览记录
ID:14051958
大小:40.84 KB
页数:3页
时间:2018-07-25
《java小程序之水仙花数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、水仙花数【实验目的】1.掌握Java程序的编译过程,以及Java程序面向对象的编写方法2.掌握类的定义与声明3.掌握对象的使用与创建4.掌握构造方法的格式及使用5.理解并熟练运用ifelse语句实现程序所要求的条件【实验原理】1.依次对一个三位数的每一位数的平方求和,百位数可通过除100取整得到,十位数可通过除10取整得到2.三位数中的最小数是101,最大数是999,所以水仙花数必然存在于101到999之间【实验要求】1.运用Java编写命令行程序2.编译、运行、调试、维护Java程序3.使用for循环结构4.熟练使用Eclipse调试工具进行程序调试【实验步骤】在
2、101到1000之间任取一个数m,m除以100取整得到它的百位数a1,除以100取余再讲余数除以10取整得到它的十位数a2,除以10取余得到它的个位数,依次对这三个数a1,a2,a3的三次方求和,验证是否等于m,若相等,则m为水仙花数,打印出来;反之,则不是水仙花数,不用打印出来。详细思路如下图所示:比较m与a1^3+a2^3+a3^3若相等,则为水仙花数,输入m【问题与解决方法】问题:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。程序:pack
3、ageshuixianhuashu;importshuixianhuashu.shuixianhuashu;publicclassshuixianhuashu{staticBooleanisSxh(intm){inta1,a2,a3;a1=m/100;a2=m%100/10;a3=m%10;if(m<3)returnfalse;elseif((a1*a1*a1+a2*a2*a2+a3*a3*a3)==(a1*100+a2*10+a3))returntrue;elsereturnfalse;}publicstaticvoidmain(String[]args){Sys
4、tem.out.println("1000以内的水仙花数:");shuixianhuashus=newshuixianhuashu();for(inti=101;i<1000;i++)if(s.isSxh(i))System.out.print(i+"t");}}运行结果:1000以内的水仙花数:153370371407【实验总结】学会了对于一个三位数进行每一位数的分离,同样的,对于任意一位多位数的每一位数也可以运用同样的方式求出。【参考文献】1.郞波. 《java语言程序设计》. 第二版 .清华大学出版社出版, 2011年2月2.Cay S.Horstmann
5、, Gary Cornell. Java 核心技术 卷 I:基础知识 .第八版机械工业出版社出版 2012年4 月
此文档下载收益归作者所有