python 编程题 有n个整数、使其前面各数_有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。...

该博客介绍了一个Python编程问题,涉及将一个整数序列的前部分向后移动指定位置,同时将最后的几个数移到序列开头。博主通过分析问题,提出使用数组进行操作,并给出了Java实现的详细步骤,包括获取用户输入、数据转换、位移操作以及输出结果的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package Demo36Number_Roll;

import java.util.Arrays;

import java.util.Scanner;

/**

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

*/

/*

分析:1.这n个数是由用户输入的,m也是用户输入的

2.这n个数装到数组里面应该会好处理些

3.新建一个长度跟原数组一样的数组

4.遍历两个数组,对应m值进行数据转移

*/

public class Number_Roll {

public static void main(String[] args) {

System.out.println("输入n个整数,再输入m,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数");

//获取用户的输入,并解析为一个数组

Scanner sc = new Scanner(System.in);

System.out.println("请直接输入数组元素,(以逗号作为间隔)");

String str = sc.next();

//分割用户输入得到一个字符串数组

String[] strs = str.split(",|,");

// 遍历这个字符串数组,将每个字符串解析为一个Integer,并装到Integer数组中

int[] nums = new int[strs.length];

int[] exchange = new int[nums.length];

int m =0;

try {

for (int i = 0; i < strs.length; i++) {

nums[i] = Integer.parseInt(strs[i]);

}

//新建一个长度一样的数组

System.out.println("原数组:"+ Arrays.toString(nums));

//让用户输入m的值

System.out.println("请输入向后移动的位数m:");

m = sc.nextInt();

}catch (NumberFormatException e){

System.out.println("你输入有误,请输入数字,其它字符不支持");

}

// 遍历两个数组,因为长度一样,所以一个for循环就足够

for (int i = 0; i < nums.length; i++) {

// m个数前的情况

if(i

exchange[i+m]=nums[i];

}else if(i>=nums.length-m){

// 最后的m个数放到新数组的最前面

for (int j = 0; j < m; j++) {

exchange[j]=nums[nums.length-m+j];

}

// 转换完成,退出循环

break;

}

}

// 输出转换后的结果

System.out.println("转换后:"+Arrays.toString(exchange));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值