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
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 移动位置的更多相关文章
- Java50道经典习题-程序50 文件IO
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中. impo ...
- Java50道经典习题-程序6 求最大公约数及最小公倍数
题目:输入两个正整数m和n,求其最大公约数和最小公倍数.分析:用辗转相除法求最大公约数 两个数的最大公约数:设两个数分别为n和m,(n>=m);用定义一个变量i,使用for循环,将i的取值 ...
- Java50道经典习题-程序16 在控制台上打印九九乘法表
题目:输出9*9口诀.分析:利用双重for循环进行输出,分行与列考虑,共9行9列,i控制行,j控制列. public class Prog16 { public static void main(St ...
- Java50道经典习题-程序18 乒乓球赛
题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单. a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单.分析: ...
- Java50道经典习题-程序33 杨辉三角
题目:打印出杨辉三角形(要求打印出10行如下图)分析: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 11 5 10 10 5 ...
- Java50道经典习题-程序34 三个数排序
题目:输入3个数a,b,c,按大小顺序输出. import java.util.Scanner; public class Prog34 { public static void main(Strin ...
- Java50道经典习题-程序1 不死神兔
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 分析:假如:1月1日有1对兔子,根据题目“从出生后 ...
- Java50道经典习题-程序30 插入数字
题目:有一个已经排好序的数组.现输入一个数,要求将它插入数组中后数组依然是排好序的.分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置. imp ...
- Java50道经典习题-程序46 字符串连接
题目:编写一个两个字符串连接的程序 import java.util.Scanner; public class Prog46 { public static void main(String[] a ...
随机推荐
- python模型字段
http://python.usyiyi.cn/translate/django_182/ref/models/fields.html#model-field-types
- 学习动态性能表(19)--v$undostat
学习动态性能表 第19篇--V$UNDOSTAT 2007.6.14 本视图监控当前实例中undo空间以及事务如何运行.并统计undo空间开销,事务开销以及实例可用的查询长度. V$UNDOSTAT ...
- [转]使用Flexible实现手淘H5页面的终端适配
曾几何时为了兼容IE低版本浏览器而头痛,以为到Mobile时代可以跟这些麻烦说拜拜.可没想到到了移动时代,为了处理各终端的适配而乱了手脚.对于混迹各社区的偶,时常发现大家拿手机淘宝的H5页面做讨论—— ...
- MyEclipse安装jbpm插件
介绍如何在MyEclipse8.6里安装jbpm插件. 工具/原料 MyEclipse8.6 jbpm-4.4.rar 方法/步骤 1 下载jbpm包并解压 下载最新的jbpm包,本文以jbpm4.4 ...
- Java-API-Package:java.math
ylbtech-Java-API-Package:java.math 1.返回顶部 1. Package java.math Provides classes for performing arbit ...
- distinct可以用in代替(小技巧)
distinct可以用in代替,in的好处是直接能获取所有数据,而distunct只能获取distinct的字段,不过效率肯定高一些.
- [摘]Android逆向分析常用网站
androidterm: Android Terminal Emulator http://code.google.com/p/androidterm/ droidbox: Andro ...
- 通过id查询出图片
第一步,model中需要如下的做法 [UIHint("Picture")] //加上之后会默认显示上传图片的模式 public int PictrueId { get; set; ...
- 通过在Oracle子表外键上建立索引提高性能
根据我的经验,导致死锁的头号原因是外键未加索引(第二号原因是表上的位图索引遭到并发更新).在以下两种情况下,Oracle在修改父表后会对子表加一个全表锁: 1)如果更新了父表的主键(倘若遵循关系数据库 ...
- 通过Excel导入Mysql 超过65535条数据的办法
1.截取 65534条数据,进行分sheet,然后1个sheet导入一张表,最后进行整合! 2.采用TXT导入方式,TXT的导入暂时没发现限制的数据条数,下午用TXT导入74万条数据成功 3.如果遇到 ...