Java数列循环左移

描述

有n个整数组成一个数组(数列)。现使数列中各数顺序依次向左移动k个位置,移出的数再从尾部移入。输出移动后的数列元素。
题目没有告诉你n的范围,要求不要提前定义数组的大小。
另外要求定义并使用函数LeftShift()
void LeftShift(int *a, int n, int k)
{
//循环移动后的数值仍然存入数组a中
}

输入

输入分2行,第一行是两个整数n和k。第二行是n个整数。数据用‘,‘隔开。

输出

输出有一行,是循环左移后的n个整数,由‘,‘隔开。

难度

中等

输入示例

6,21,2,3,4,5,6

输出示例

3,4,5,6,1,2

完成代码:

 1 import java.util.Scanner;
 2
 3 public class Demo01{
 4     public static void main(String[] args) {
 5         Scanner input = new Scanner(System.in);
 6         String t=input.nextLine();
 7         String[] t1=t.split(",");
 8         String t3=input.nextLine();
 9         String[] t2=t3.split(",");
10         int n=Integer.parseInt(t1[0]);
11         int k=Integer.parseInt(t1[1]);
12         int[] a=new int[n];
13         for(int i=0;i<n;i++){
14             a[i]=Integer.parseInt(t2[i]);
15         }
16         LeftShift(a,n,k);
17         input.close();
18     }
19     public static void LeftShift(int[] a,int n,int k){
20         int[] s=new int[n];
21         for(int i=0;i<n;i++){         //核心,中心思想
22             s[i]=a[k];
23             k++;
24             if(k==6){
25                 k=0;
26             }
27         }
28         for(int i=0;i<n;i++){
29             a[i]=s[i];
30         }
31         System.out.print(a[0]);
32         for(int i=1;i<n;i++){
33             System.out.print(","+a[i]);
34         }
35     }
36 }

原文地址:https://www.cnblogs.com/Blogwjl/p/12327047.html

时间: 2024-10-21 00:18:57

Java数列循环左移的相关文章

Java数列循环右移

描述 有n个整数组成一个数组(数列).现使数列中各数顺序依次向右移动k个位置,移出的数再从开头移入.输出移动后的数列元素,元素之间逗号隔开. 题目没有告诉你n的范围,要求不要提前定义数组的大小. 另外要求定义并使用函数ringShift() void ringShift(int *a, int n, int k) { //循环移动后的数值仍然存入数组a中 } 输入 输入分2行,第一行是两个整数n与k.第二行是n个整数,用“,”隔开. 输出 输出有一行,是循环移位后的n个整数,由“,”隔开. 难度

字符串-05. 字符串循环左移(20)

输入一个字符串和一个非负整数N,要求将字符串循环左移N次. 输入格式: 输入在第1行中给出一个不超过100个字符长度的.以回车结束的非空字符串:第2行给出非负整数N. 输出格式: 在一行中输出循环左移N次后的字符串. 输入样例: Hello World! 2 输出样例: llo World!He import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(St

JAVA for循环

java for循环就是,对于某些操作,人为地控制循环次数.最简单的,比如打印数字. 举例: 遍历数组 1 2 3 4 int[] a = new int[]{1,2,3,4,5,6,7,8,9,10,11,12};      for(int iloop : a){      System.out.println(iloop); } 2.while结构循环为当型循环(when type loop),一般用于不知道循环次数的情况.维持循环的是一个条件表达式,条件成立执行循环体,条件不成立退出循环.

java三大循环----第一次小体会

java三大循环包括while...do while...for (1)语法区别: while循环 while(循环条件){ //循环操作(体) } do  while循环 do{ //循环操作(体) }while(循环条件); for循环 for(初始化;循环条件;迭代){ //循环操作(体) } (2)执行顺序: while循环:先判断后执行 do while循环:先执行后判断 for循环:先判断后执行 (3)适用情况: 循环次数确定的情况,通常选用for循环: 循环次数不确定的情况,通常选

[java基础]循环结构1

[java基础]循环结构1 循环结构:for循环,while循环,do_while循环在,增强型for循环 /** 文件路径:G:\JavaByHands\循环语句文件名称:WhileTest.java 编写时间:2016/6/7 作 者:郑晨辉 编写说明:while do while 代码示例 */ public class WhileTest{ public static void main(String[] args){ //初始条件 int i = 0; //进入循环,while循环先判

5-31 字符串循环左移 (20分)

输入一个字符串和一个非负整数N,要求将字符串循环左移N次. 输入格式: 输入在第1行中给出一个不超过100个字符长度的.以回车结束的非空字符串:第2行给出非负整数N. 输出格式: 在一行中输出循环左移N次后的字符串. 输入样例: Hello World! 2 输出样例: llo World!He #include <stdio.h> #include <stdlib.h> int main() { int N; int length = 0; char a[100],b[100];

《编程珠玑》笔记:数组循环左移

问题描述:数组元素循环左移,将包含 num_elem 个元素的一维数组 arr[num_elem] 循环左移 rot_dist 位.能否仅使用数十个额外字节的存储空间,在正比于num_elem的时间内完成数组的旋转? 一:Bentley's Juggling Alogrithm 移动变量 arr[0] 到临时变量 tmp,移动 arr[rot_dist] 到 arr[0],arr[2rot_dist] 到 arr[rot_dist],依此类推,直到返回到取 arr[0] 中的元素,此时改为从 t

*字符串-05. 字符串循环左移

1 /* 2 * Main.c 3 * D5-字符串-05. 字符串循环左移 4 * Created on: 2014年8月19日 5 * Author: Boomkeeper 6 ********部分通过******* 7 */ 8 9 #include <stdio.h> 10 11 int main(void){ 12 13 char str[100]={0}; 14 int N=0; 15 int endIndex=99;//字符串的结尾标识符 16 17 gets(str); 18

10-4. 字符串循环左移(20)

输入一个字符串和一个非负整数N,要求将字符串循环左移N次. 输入格式: 输入在第1行中给出一个不超过100个字符长度的.以回车结束的非空字符串:第2行给出非负整数N. 输出格式: 在一行中输出循环左移N次后的字符串. 输入样例: Hello World! 2 输出样例: llo World!He 1 #include <stdio.h> 2 #include <string.h> 3 4 int main() 5 { 6 char str[101]; 7 int t; 8 gets