循环案例 水仙花 打印大小写字母 9*9表

    水仙花数是指一个数3位数,其每位数字立方和等于其本身,如153 = 1*1*1 + 3*3*3 + 5*5*5

    

题目分析:

通过观察发现,本题目要实现打印符合要求的数字(即水仙花数)。

  1. 明确什么样的数就是水仙花数。水仙花数是指一个3位数(100-999之间),其每位数字立方之和等于该3位数本身。如153 = 1*1*1 + 3*3*3 + 5*5*5,

 3位数本身 = 百位数立方 + 十位数立方 + 个位数立方;

  1. 获取水仙花范围内的所有3位数(100-999之间的每个3位数)
  2. 判断该3位数是否满足水仙花数,满足,打印该3位数

解题步骤:

  1. 使用for循环,得到100-999之间的每个3位数
  2. 获取3位数中百位数字、十位数字、个位数字
  3. 使用if条件语句,判断该3位数是否满足水仙花数,满足,使用输出语句,打印该3位数

代码如下:

public class tset {
    public static void main(String[] args) {
        for (int i = 100; i < 1000; i++) {
            int bai = i/100%10;
            int shi = i/10%10;
            int ge = i%10;
            if (i == bai*bai*bai + shi*shi*shi + ge*ge*ge) {
                System.out.println(i);
            }
        }
    }
}

利用for循环打印ABCDEFG...XYZ,26个大写字母与26个小写字母

题目分析:

通过观察发现,本题目要实现打印26个大写字母、26个小写字母

  1. 一共26个大小写字母,那么,可以考虑循环26次。在每次循环中,完成指定字母的大小写打印
  2. 找出ABCDEFG…XYZ这些字母之间的变化规律

通过ASCII表发现,后面的字母比它前面的字母,ASCII值大1

下一个字母 = 上一个字母 + 1

如: A B C D

65 66 67 68

3. 在每次循环中打印上一个字母大小写,并指定下一个字母

题目分析:

通过观察发现,本题目要实现打印26个大写字母、26个小写字母

  1. 一共26个大小写字母,那么,可以考虑循环26次。在每次循环中,完成指定字母的大小写打印
  2. 找出ABCDEFG…XYZ这些字母之间的变化规律

通过ASCII表发现,后面的字母比它前面的字母,ASCII值大1

下一个字母 = 上一个字母 + 1

如: A B C D

65 66 67 68

3. 在每次循环中打印上一个字母大小写,并指定下一个字母

public class tset {
    public static void main(String[] args) {
        char da = 'A';
        char xiao = 'a';
        for (int i = 0; i < 26; i++) {
            System.out.println("大写字母 "+da+" ,小写字母 "+xiao);
            da++; //更新大写字母值
            xiao++; //更新小写字母值
        }
    }
}

利用for循环打印 9*9 表

如:

  1*1=1

1*2=2  2*2=4

1*3=3  2*3=6  3*3=9

题目分析:

通过观察发现,如果把1*1=1这样的内容 看做一颗*的话,那么打印结果就成了如下效果:

*

**

***

这样,就是打印9行星,每行打印星的个数与当前行数相等。

再观察“1*3=3 2*3=6 3*3=9”得出它们如下的变化规律:

每行第n次 +"*"+ 行号 +"="+ 每行第n次 * 行号

如: 1 +"*"+  2    +"="+   1*2; // 相当于1*2=2

        2 +"*"+  2    +"="+   2*2; // 相当于2*2=4

解题步骤:

  1. 定义一个外层for循环,初始值从1开始,循环9次。用来控制打印的行数
  2. 在外层for循环内部,定义一个for循环,初始值从1开始,循环次数与当前行数相等。用来完成每行打印指定次数的乘法公式 如1*1=1
  3. 在内层for循环中,完成每行指定次数的乘法公式打印 如1*1=1

System.out.print(k +"*"+ j +"="+ j*k +"\t");

// 变量k代表:每行中的第n次

// 变量j代表:行号

在外循环中,当每行指定次数的乘法公式打印完毕后,通过System.out.println()切换到下一行。这样,再次打印乘法公式时,就在下一行输出打印了

代码如下:

public class tset {
    public static void main(String[] args) {
        for (int j = 1; j < 10; j++) {
            for (int k = 1; k <= j; k++) {
                System.out.print(k +"*"+ j +"="+ j*k +"\t");
            }
            System.out.println();
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值