学习-Java循环for之求水仙花数

第1关:学习-Java循环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
  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。它的原理和我们之前学的自增运算符(++)是一样的。

编程要求

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

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

可在右侧 “测试结果”区查看具体的测试集详情。


开始你的任务吧,祝你成功!

/*
* 任务:使用for循环输出所有的水仙花数
*水仙花数特征:
  - 该值处于 100(包括)到 999(包括)之间;
  - 其个位数的三次幂,十位数的三次幂,百位数的三次幂的和等于这个数本身。
* 输出样式:x是一个水仙花数。
*/


public class ForTest {
    public static void main(String[] args) {
    
        // 请在 Begin-End 间编写代码
        
        /********** Begin **********/
        // 第一步:使用for循环依次取999到100中的每个数,判断是否为水仙花数
        for(int i=999;i>=100;i--){
        // 第二步:获取个位
        int ge=i%10;
        // 第三步:获取十位
       int shi=(i/10)%10;
        // 第四步:获取百位
        int bai=i/100;
        // 第五步:判断个位数的三次幂,十位数的三次幂,百位数的三次幂的和是否等于这个数本身,等于的话,输出该数
        int sum= ge*ge*ge + shi*shi*shi + bai*bai*bai ;
        if(sum==i){
            System.out.println(i+"是一个水仙花数。");
            continue;
        }
        }
       /********** End **********/
    
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值