zoukankan      html  css  js  c++  java
  • Java50道经典习题-程序36 移动位置

    题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
    分析:比如有4个数n=4;
    1 2 3 4
    各个数向后移动2位m=2,变为
        1 2 3 4
    将最后m个数,即将最后2个数变成前面的2个数变为
    3 4 1 2
     1 import java.util.Arrays;
     2 import java.util.Scanner;
     3 public class Prog36 {
     4     public static void main(String[] args) {
     5         //获取用户输入数据
     6         Scanner scan=new Scanner(System.in);
     7         System.out.println("请输入想要输入的整数个数n:");
     8         int n=scan.nextInt();
     9         int []arr=new int[n];
    10         System.out.println("请依次输入这n个整数:");
    11         for(int i=0;i<n;i++) {
    12             arr[i]=scan.nextInt();
    13         }
    14         System.out.println("请输入想要移动的位数m:");
    15         int m=scan.nextInt();
    16         scan.close();
    17         //输出原始数据
    18         System.out.println("输入的数组是:"+Arrays.toString(arr));
    19         arr.toString();
    20         //调用函数输出移动后的数组
    21         System.out.println("移动位置之后的数组是:"+move(arr,n,m));
    22     }
    23     //编写函数实现题目移动位置功能
    24     public static String move(int[]arr,int n,int m) {
    25         //新建一个数组拷贝原来的数组,使原来的数组长度+m
    26         int []arr2=new int[arr.length+m];
    27         for(int j=0;j<arr2.length-m;j++) {//从数组的m位开始,将原来的数组拷贝到新数组中
    28             if(j<m) {
    29                 arr2[j]=arr[n-m+j];//将数组的后几位要移动的数字放在新数组的前面
    30             }else {
    31                 arr2[j]=arr[j-m];//将数组的剩下的位数放近新数组中
    32             }
    33         }
    34         //将移动位置之后的新数组的元素拷贝至原数组中
    35         for(int t=0;t<n;t++) {
    36             arr[t]=arr2[t];
    37         }
    38         return Arrays.toString(arr);
    39  
    40     }
    41 }
    42 /*运行结果
    43 请输入想要输入的整数个数n:
    44 4
    45 请依次输入这n个整数:
    46 1
    47 2
    48 3
    49 4
    50 请输入想要移动的位数m:
    51 2
    52 输入的数组是:[1, 2, 3, 4]
    53 移动位置之后的数组是:[3, 4, 1, 2]
    54 */
  • 相关阅读:
    编译器内置宏实现调试信息输出
    走进C标准库(4)——"stdio.h"中的putc
    走进C标准库(5)——"stdio.h"中的其他部分函数
    走进C标准库(2)——"stdio.h"中的fopen函数
    [转]深度探索C语言函数可变长参数
    C语言I博客作业02
    C语言I博客作业02
    第一周c语音作业
    什么是模块化,模块化的好处又是什么?
    服务端渲染和客户端渲染
  • 原文地址:https://www.cnblogs.com/parkour1026/p/10796582.html
Copyright © 2011-2022 走看看