千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 用java写水仙花数代码:java水仙花数for循环

用java写水仙花数代码:java水仙花数for循环

来源:千锋教育
发布人:xqq
时间: 2023-07-23 13:48:41 1690091321

水仙花数是指一个三位数,它的各个位上的数字的立方和等于该数本身。例如:153,是因为13+53+33=153。这个数在古代称为"自恋数",因为它的每一位数字立方数相加后,正好等于自身,因此自认为"最美丽、最出色"。

如何用Java写水仙花数代码

Java语言是一个功能强大的编程语言,它可以用来编写各种类型的程序。下面是一个用Java编写水仙花数的代码示例:

//定义变量int i = 0, j = 0, k = 0; //循环生成所有三位数for (i = 1; i <= 9; i++) {   for (j = 0; j <= 9; j++) {      for (k = 0; k <= 9; k++) {         //计算立方和         int n = i * 100 + j * 10 + k;         int m = i * i * i + j * j * j + k * k * k;         //判断是否为水仙花数         if (n == m) {            System.out.println(n);         }      }      }}

以上代码中,我们定义了三个变量i、j和k,用于生成所有的三位数。之后我们使用for循环遍历所有的三位数,并计算它的各个位上的数字的立方和。最后判断是否与它本身相等,如果相等就输出这个数字。

如何改进水仙花数代码

以上的Java代码可以用于生成所有的水仙花数,但是如果我们只想生成1000以内的水仙花数,这个程序就会变得很慢。因此,我们需要对代码进行优化,让它更加高效。

我们可以将for循环中的i、j和k的范围缩小到0~9之间,然后再将生成的三位数与1000做比较,如果大于1000就退出循环。这样可以大大提高代码的运行效率。

//定义变量int i = 0, j = 0, k = 0; //循环生成所有三位数for (i = 0; i <= 9; i++) {   for (j = 0; j <= 9; j++) {      for (k = 0; k <= 9; k++) {         //计算立方和         int n = i * 100 + j * 10 + k;         int m = i * i * i + j * j * j + k * k * k;         //判断是否为水仙花数         if (n == m && n < 1000) {            System.out.println(n);         }      }      }}

以上代码中,我们调整了i、j和k的范围,并在判断水仙花数时加入了一个小于1000的条件,避免了生成大于1000的数字。这样可以大大提高代码的运行效率。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT
开班信息
北京校区
  • 北京校区
  • 大连校区
  • 广州校区
  • 成都校区
  • 杭州校区
  • 长沙校区
  • 合肥校区
  • 南京校区
  • 上海校区
  • 深圳校区
  • 武汉校区
  • 郑州校区
  • 西安校区
  • 青岛校区
  • 重庆校区
  • 太原校区
  • 沈阳校区
  • 南昌校区
  • 哈尔滨校区