Java循环for之求水仙花数

目录

任务描述

相关知识

for 循环

自减运算符 --

编程要求

代码展示


任务描述

本关任务:输出所有水仙花数。 水仙花数特征:

  • 该值处于 100(包括)到 999(包括)之间;
  • 其个位数的三次幂,十位数的三次幂,百位数的三次幂的和等于这个数本身。

输出格式:xx是一个水仙花数。

相关知识

当我们想要对同样的操作执行多次,就需要使用到循环结构,在 Java 中循环结构主要分为三种:

  • while 循环;
  • do…while 循环;
  • for 循环。

之前我们已经学习了前面两种循环,今天我们来学习最后一种最重要的循环结构 —— for 循环。

for 循环

虽然所有循环结构都可以用 while 或者 do…while 表示,但 Java 提供的 for 循环使一些循环结构变得更加简单。

以下图 1 为它的运行逻辑:

图1

从运行逻辑图中可以得出 for 循环执行步骤:

  • 第一步执行表达式1,可初始化一个或多个循环控制变量;

  • 第二步执行表达式2,若值为 true,则执行循环体语句,然后在执行第三步,若值为 false,则跳出循环体语句;

  • 第三步执行表达式3,更新循环控制变量;

  • 第四步再次执行条件表达式,也就是跳转到第二步,如此往复。

for 循环语法格式如下:

  1. //三个表达式之间以;分隔。
  2. for(表达式1; 表达式2; 表达式3) {
  3. 循环体语句序列;
  4. }

for 循环使用案例:循环打印”好好学习,天天向上“ n 次。

  1. public class ForTest {
  2. public static void main(String[] args) {
  3. // 创建Scanner对象
  4. Scanner input = new Scanner(System.in);
  5. // 获取输入的整数值
  6. int n = input.nextInt();
  7. for(int i=1;i<n;i++){
  8. System.out.print("好好学习 天天向上");
  9. }
  10. }
  11. }

按照 for 循环的执行步骤,以上案例的执行过程为:第一步定义一个整型变量 i,并赋值为 1,第二步判断变量 i 是否小于 n,小于的话执行循环体中的代码,打印一次”好好学习 天天向上“,第三步对变量 i 的值加 1,第四步重新判断变量 i 是否小于 n,重复第二步和第三步,直到变量 i 的值不小于 n,退出循环。

当 n 等于 5 时,输出结果如下:

  1. 好好学习 天天向上
  2. 好好学习 天天向上
  3. 好好学习 天天向上
  4. 好好学习 天天向上
  5. 好好学习 天天向上

自减运算符 --

在以上案例中,我们使用 for 循环结合自增运算符 ++ 循环输出语句,下面我们来了解一下,怎么使用 for 循环结合自减运算符 – 来实现同样的功能。

  1. public class ForTest {
  2. public static void main(String[] args) {
  3. // 创建Scanner对象
  4. Scanner input = new Scanner(System.in);
  5. // 获取输入的整数值
  6. int n = input.nextInt();
  7. for(int i=10;i>n;i--){
  8. System.out.print("好好学习 天天向上");
  9. }
  10. }
  11. }

当 n 等于 5 时,输出结果如下:

  1. 好好学习 天天向上
  2. 好好学习 天天向上
  3. 好好学习 天天向上
  4. 好好学习 天天向上
  5. 好好学习 天天向上

自减运算符 -- 可以置于变量后(i--),也可以置于变量前(--i),置于变量后表示先使用 i,再对 i 的值减 1,置于变量前表示先对 i 的值减 1,然后再使用 i。它的原理和我们之前学的自增运算符(++)是一样的。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

代码展示

public class ForTest {

    public static void main(String[] args) {

        // 请在 Begin-End 间编写代码

        /********** Begin **********/

       for(int i=999;i>=100;i--) {

      int a = i%10;

      int b = i/10%10;

      int c = i/100;

      if(Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3)==i) {

        System.out.println(i + "是一个水仙花数。");

      }

       }

        // 第五步:判断个位数的三次幂,十位数的三次幂,百位数的三次幂的和是否等于这个数本身,等于的话,输出该数

       /********** End **********/

    }

}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值