美文网首页
第7章 练习

第7章 练习

作者: 圣堂刺客_x | 来源:发表于2019-10-01 23:02 被阅读0次

    1 循环练习

    1.1 编写程序求 1+3+5+7+……+99 的和值。

    题目分析:
    通过观察发现,本题目要实现的奇数(范围1-100之间)的累加和。
      1.为了记录累加和的值,我们需要定义一个存储累加和的变量
      2.我们要获取到1-100范围内的数
      3.判断当前数是否为奇数,是奇数,完成累加和操作
      4.累加完毕后,最终显示下累加和的值
    解题步骤:
      1.定义一个用来记录累加和的变量
      2.使用for循环语句,完成1-100之间每个数的获取
      3.使用if条件语句,判断当前数是否是奇数,是奇数,进行累加和操作
      4.使用输出语句,打印累加和变量的值

    public class HelloWorld{
        public static void main(String[] args){
            int sum = 0;
            for(int i = 0;i < 100;i++){
                if(i%2 == 1){
                    sum += i;
                }
            }
            System.out.println(sum);
        }
    }
    

    1.2 输出所有的水仙花数,所谓水仙花数是指一个数3位数,其每位数字立方和等于其本身,如153 = 111 + 333 + 555

    题目分析:
    通过观察发现,本题目要实现打印符合要求的数字(即水仙花数)。
      1.明确什么样的数就是水仙花数。水仙花数是指一个3位数(100-999之间),其每位数字立方之和等于该3位数本身。如153 = 111 + 333 + 555,
    即 3位数本身 = 百位数立方 + 十位数立方 + 个位数立方;
      2.获取水仙花范围内的所有3位数(100-999之间的每个3位数)
      3.判断该3位数是否满足水仙花数,满足,打印该3位数
    解题步骤:
      1.使用for循环,得到100-999之间的每个3位数
      2.获取3位数中百位数字、十位数字、个位数字
      3.使用if条件语句,判断该3位数是否满足水仙花数,满足,使用输出语句,打印该3位数

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

    1.3 利用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. 在每次循环中打印上一个字母大小写,并指定下一个字母
    解题步骤:
      1.定义初始化大写变量,值为’A’; 初始化小写变量,值为’a’
      2.使用for循环,进行26次循环
      3.在每次循环中,打印大写字母、小写字母。
    每次打印完成后,更新大写字母值、小写字母值

    public class HelloWorld{
        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++;
            }
        }
    }
    

    1.5 利用for循环打印 9*9 表

    解题步骤:
      1.定义一个外层for循环,初始值从1开始,循环9次。用来控制打印的行数
      2.在外层for循环内部,定义一个for循环,初始值从1开始,循环次数与当前行数相等。用来完成每行打印指定次数的乘法公式 如11=1
      3.在内层for循环中,完成每行指定次数的乘法公式打印 如1
    1=1
        System.out.print(k +""+ j +"="+ jk +"\t");
        // 变量k代表:每行中的第n次
        // 变量j代表:行号
      4.在外循环中,当每行指定次数的乘法公式打印完毕后,通过System.out.println()切换到下一行。这样,再次打印乘法公式时,就在下一行输出打印了

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

    2 数组方法练习

    2.1 定义打印数组元素方法,按照给定的格式打印[11, 33, 44, 22, 55]

    public class HelloWorld{
        public static void main(String[] args){
            int[] arr = {11, 33, 44, 22, 55};
            String res = "[";
            for(int i = 0;i < arr.length;i++){
                if(i == arr.length-1){
                    res += arr[i];
                    res += "]";
                }else{
                    res += arr[i]+",";
                }
            }
            System.out.println(res);
        }
    }
    

    2.2 数组元素逆序

    图解:


    image.png

    题目分析:
    通过观察发现,本题目要实现原数组元素倒序存放操作。即原数组存储元素为{11,22,33,44},逆序后为原数组存储元素变为{44,33,22,11}。
      1.通过图解发现,想完成数组元素逆序,其实就是把数组中索引为start与end的元素进行互换。
      2.每次互换后,start索引位置后移,end索引位置前移,再进行互换
      3.直到start位置超越了end位置,互换结束,此时,数组元素逆序完成。
    解题步骤:
      1.定义两个索引变量start值为0,变量end值为数组长度减去1(即数组最后一个元素索引)
      2.使用循环,完成数组索引start位置元素与end位置元素值互换。
      3.在循环换过程中,每次互换结束后,start位置后移1,end位置前移1
      4.在循环换过程中,最先判断start位置是否超越了end位置,若已超越,则跳出循环

    public class HelloWorld{
        public static void main(String[] args){
            int[] arr = {11,22,33,44};
            for(int start=0,end=arr.length-1;start < end;start++,end--){
                int temp = arr[start];
                arr[start] = arr[end];
                arr[end] = temp;
            }
            
            for(int i=0;i < arr.length;i++){
                System.out.println(arr[i]);
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:第7章 练习

          本文链接:https://www.haomeiwen.com/subject/bahlpctx.html