• 每日练习------有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数


    题目: 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

    解题关键:需要新建个数组使得原数组可以做到整体往后移动M位

    思路:1.创建个有n个整数的数组

            2.输出n个数字,存储到数组中

            3.遍历原数组

            4.输出前面各数顺序向后移m个位置

            5.创建一个新数组长度为(n+m)

            6.把旧数组的值存储到新数组中

            7.整体数组往后移动m位

            8.m个数变成最前面的m个数

            9.遍历新数组

    过程: 接下来我们根据我们的解题思路来一步步写代码

            1.创建个有n个整数的数组
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您需要输入多少个整数:");
            int n = sc.nextInt();
            int[] nums = new int[n];

            2.输出n个数字,存储到数组中
            System.out.println("请依次输入" + n + "个整数");
            for (int i = 0; i < nums.length; i++) {
                System.out.println("第" + (i + 1) + "个数字为:");
                int num = sc.nextInt();
                nums[i] = num;
            }

             3.遍历原数组
            System.out.print("原数组为:");
            for (int i = 0; i < nums.length; i++) {
                System.out.print(nums[i] + " ");
            }

            System.out.println();// 换行

             4.输出前面各数顺序向后移m个位置
            System.out.print("输出前面的各数顺序向后移动的位置:");
            int m = sc.nextInt();

            5.创建一个新数组长度为(n+m)
            int[] newNums = new int[n + m];
            
            6.把旧数组的值存储到新数组中
            for (int i = 0; i < nums.length; i++) {
                newNums[i] = nums[i];
            }
            System.out.println();
            7.整体数组往后移动m位
            for (int i = newNums.length - 1; i-m >= 0 ; i--) {
                newNums[i] = newNums[i-m];
            }
            
            8.m个数变成最前面的m个数
            for (int i = 0; i < m; i++) {
                newNums[i] = newNums[newNums.length -(m-i)];
            }
            
            9.遍历新数组
            System.out.print("新数组为:");
            for (int i = 0; i < nums.length; i++) {
                nums[i] = newNums[i];
                System.out.print(nums[i] + " ");
            }

    完整结果如下:

       为了方便大家使用,下面附上源码:

    1. // 1.创建个有n个整数的数组
    2. Scanner sc = new Scanner(System.in);
    3. System.out.println("请输入您需要输入多少个整数:");
    4. int n = sc.nextInt();
    5. int[] nums = new int[n];
    6. // 2.输出n个数字,存储到数组中
    7. System.out.println("请依次输入" + n + "个整数");
    8. for (int i = 0; i < nums.length; i++) {
    9. System.out.println("第" + (i + 1) + "个数字为:");
    10. int num = sc.nextInt();
    11. nums[i] = num;
    12. }
    13. // 3.遍历原数组
    14. System.out.print("原数组为:");
    15. for (int i = 0; i < nums.length; i++) {
    16. System.out.print(nums[i] + " ");
    17. }
    18. System.out.println();// 换行
    19. // 4.输出前面各数顺序向后移m个位置
    20. System.out.print("输出前面的各数顺序向后移动的位置:");
    21. int m = sc.nextInt();
    22. // 5.创建一个新数组长度为(n+m)
    23. int[] newNums = new int[n + m];
    24. //6.把旧数组的值存储到新数组中
    25. for (int i = 0; i < nums.length; i++) {
    26. newNums[i] = nums[i];
    27. }
    28. System.out.println();
    29. //7.整体数组往后移动m位
    30. for (int i = newNums.length - 1; i-m >= 0 ; i--) {
    31. newNums[i] = newNums[i-m];
    32. }
    33. //8.m个数变成最前面的m个数
    34. for (int i = 0; i < m; i++) {
    35. newNums[i] = newNums[newNums.length -(m-i)];
    36. }
    37. //9.遍历新数组
    38. System.out.print("新数组为:");
    39. for (int i = 0; i < nums.length; i++) {
    40. nums[i] = newNums[i];
    41. System.out.print(nums[i] + " ");
    42. }

    明日练习:定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;

    大家可以自己写写,明天中午12点我准时发出我的写法哦,明天12点不见不散

     一生朋友一生情,一生有你才会赢;千山万水总是情,点个关注行不行!

  • 相关阅读:
    四、python基础——基本结构语句&&函数和模块
    网络安全架构:建立安全架构方法的指导框架
    集客 ap ac扫盲贴 来自恩山论坛
    星乐园项目┃助学无止境·探访暖人心
    总结使用React做过的一些优化
    【计算机网络系列】物理层②:信道复用技术(频分复用、时分复用、波分复用及码分复用)
    树与二叉树
    技术分享 | 接口自动化测试如何处理 Header cookie
    【RocketMQ集群】Linux搭建RocketMQ双主双从集群
    2022河南萌新联赛第(七)场:南阳理工学院 H-防风台
  • 原文地址:https://blog.csdn.net/SSSS__AS/article/details/126022551