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 ...
随机推荐
- 洛谷 P3048 [USACO12FEB]牛的IDCow IDs
题目描述 Being a secret computer geek, Farmer John labels all of his cows with binary numbers. However, ...
- Angular5学习笔记 - 虚拟RestfulApi配置与使用(六)
一.安装json-server功能 #windows cnpm install json-server -g #Mac & Linux sudo npm install json-server ...
- 我不知道的promise
promise在resolve之后 再抛出错误并不会被捕获,等于没有抛出,个人理解是状态改变之后就不会再次改变. 错误具有冒泡的特性,会一直向后传递,直到被捕获为止,但是不会冒泡到全局.跟传统的try ...
- Mongodb 分片与副本集
测试搭建192.168.3.110mongos 30000,30001,30002config 40000,40001,40002shard1 50001,50002,50003shard2 5000 ...
- mysql 回顾小练习
Student(id,sname,age,sex) 学生表 Course(id,cname,t_id) 课程表 SC(s_id,c_id,score) 成绩表 Teacher(id,Tname) 教师 ...
- Winsock 传输文件
文件传输的原理:发送方把文件读到socket发送端缓冲区中,接收方把socket接收端缓端冲区中的数据写到一个新文件中.当然了,大文件需要循环读写! 服务器端为发送端: #include " ...
- java获取多个汉字的拼音首字母
本文属于http://java.chinaitlab.com/base/803353.html原创!!! public class PinYin2Abbreviation { // 简体中文的编码范围 ...
- linux进程的软中断通信
linux进程的软中断通信 要求 实现软中断通信的程序 使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上发出的中断信号(即按delete键),当父进程接收到这两个 ...
- 第二天:tomcat体系结构和第一个Servlet
1. 打war包 2. Tomcat体系再说明: 问题:如何去配置默认主机??? 3.tomcat和servlet在网络中的位置 4. servlet快速入门案例 1).开发s ...
- springmvc 注解式开发 解决中文乱码问题