题目:有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
 import java.util.Arrays;
import java.util.Scanner;
public class Prog36 {
public static void main(String[] args) {
//获取用户输入数据
Scanner scan=new Scanner(System.in);
System.out.println("请输入想要输入的整数个数n:");
int n=scan.nextInt();
int []arr=new int[n];
System.out.println("请依次输入这n个整数:");
for(int i=0;i<n;i++) {
arr[i]=scan.nextInt();
}
System.out.println("请输入想要移动的位数m:");
int m=scan.nextInt();
scan.close();
//输出原始数据
System.out.println("输入的数组是:"+Arrays.toString(arr));
arr.toString();
//调用函数输出移动后的数组
System.out.println("移动位置之后的数组是:"+move(arr,n,m));
}
//编写函数实现题目移动位置功能
public static String move(int[]arr,int n,int m) {
//新建一个数组拷贝原来的数组,使原来的数组长度+m
int []arr2=new int[arr.length+m];
for(int j=0;j<arr2.length-m;j++) {//从数组的m位开始,将原来的数组拷贝到新数组中
if(j<m) {
arr2[j]=arr[n-m+j];//将数组的后几位要移动的数字放在新数组的前面
}else {
arr2[j]=arr[j-m];//将数组的剩下的位数放近新数组中
}
}
//将移动位置之后的新数组的元素拷贝至原数组中
for(int t=0;t<n;t++) {
arr[t]=arr2[t];
}
return Arrays.toString(arr); }
}
/*运行结果
请输入想要输入的整数个数n:
4
请依次输入这n个整数:
1
2
3
4
请输入想要移动的位数m:
2
输入的数组是:[1, 2, 3, 4]
移动位置之后的数组是:[3, 4, 1, 2]
*/

Java50道经典习题-程序36 移动位置的更多相关文章

  1. Java50道经典习题-程序50 文件IO

    题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中. impo ...

  2. Java50道经典习题-程序6 求最大公约数及最小公倍数

    题目:输入两个正整数m和n,求其最大公约数和最小公倍数.分析:用辗转相除法求最大公约数    两个数的最大公约数:设两个数分别为n和m,(n>=m);用定义一个变量i,使用for循环,将i的取值 ...

  3. Java50道经典习题-程序16 在控制台上打印九九乘法表

    题目:输出9*9口诀.分析:利用双重for循环进行输出,分行与列考虑,共9行9列,i控制行,j控制列. public class Prog16 { public static void main(St ...

  4. Java50道经典习题-程序18 乒乓球赛

    题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单. a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单.分析: ...

  5. Java50道经典习题-程序33 杨辉三角

    题目:打印出杨辉三角形(要求打印出10行如下图)分析:          1         1 1        1 2 1      1 3 3 1    1 4 6 4 11 5 10 10 5 ...

  6. Java50道经典习题-程序34 三个数排序

    题目:输入3个数a,b,c,按大小顺序输出. import java.util.Scanner; public class Prog34 { public static void main(Strin ...

  7. Java50道经典习题-程序1 不死神兔

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 分析:假如:1月1日有1对兔子,根据题目“从出生后 ...

  8. Java50道经典习题-程序30 插入数字

    题目:有一个已经排好序的数组.现输入一个数,要求将它插入数组中后数组依然是排好序的.分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置. imp ...

  9. Java50道经典习题-程序46 字符串连接

    题目:编写一个两个字符串连接的程序 import java.util.Scanner; public class Prog46 { public static void main(String[] a ...

随机推荐

  1. 橱窗布置(Flower)(动规)

    橱窗布置(Flower) [问题描述]         假设以最美观的方式布置花店的橱窗,有F束花,每束花的品种都不一样,同时,至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,并从左到右, ...

  2. webpack学习(一)—— 入门

    ,我们通常采用的是组件化开发方式,这样就会对应有很多个js文件,而打包工具的出现则是为了正确处理这些js文件的依赖关系,并生成一个最终的文件,这样,我们最后只需要加载打包以后的文件就可以了,而无须加载 ...

  3. Weblogic-unable to get file lock, will retry …问题解决

    weblogic部署应用出现如下报错: <2017-8-15 下午05时08分44秒 CST> <Info> <Management> <BEA-141281 ...

  4. Oracle 12C 新特性之 db默认字符集AL32UTF8、PDB支持不同字符集

    一. db默认字符集AL32UTF8Specify the database character set when you create the database. Starting from Ora ...

  5. 通过扫码自定义链接安装iOS app,版本更新总结。

    1.打包ipa,plist工具:xcode6证书:企业级开发证书 1.1)xcode6开始企业级打包时不在生成plist,需要自己编写:模版见下: <?xml version="1.0 ...

  6. Java并发 两个线程交替执行和死锁

    今天看到一个题:两个线程交替打印奇数和偶数,即一个线程打印奇数,另一个打印偶数,交替打印从1到100.想了下有多重实现方法. wait和notify方法: public class OddEven { ...

  7. java中i/o练习

    总结: FileInputStream fis; int length; while((length=fis.read(b,0,b.length))!=-1){ output.write(b,0,le ...

  8. C Primer Plus学习笔记(四)- 运算符、表达式和语句

    基本运算符 赋值运算符:= 在C语言中,=不是“相等”,而是赋值运算符,把左边的值赋给右边的变量 a = 2018; //把值2018赋给变量a 赋值表达式语句的目的是把值储存到内存位置上,用于储存值 ...

  9. CreateThread demo

    #include "stdafx.h"#include<windows.h>#include<strsafe.h>//win2003SDK必须安装 要不无此 ...

  10. 基于候选区域的深度学习目标检测算法R-CNN,Fast R-CNN,Faster R-CNN

    参考文献 [1]Rich feature hierarchies for accurate object detection and semantic segmentation [2]Fast R-C ...