Java数列ループ左シフト

5254 ワード

説明
n個の整数で配列(数列)を構成します.ここで,数列中の各数を順に左にk個の位置を移動させ,移動した数を尾から移動させる.移動後の数列要素を出力します.テーマはnの範囲を教えていません.配列の大きさを事前に定義しないでください.また、関数LeftShift()void LeftShift(int*a,int n,int k){//ループ移動後の数値は配列aに格納する必要がある.
入力
入力は2行に分けられ、最初の行は2つの整数nとkである.2行目はn個の整数です.データは','で区切られています.
しゅつりょく
出力は1行あり、ループ左シフト後のn個の整数であり、','で区切られている.
難易度
中程度
入力例
6,2
1,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){
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//
22             s[i]=a[k];
23             k++;
24             if(k==6){
25                 k=0;
26             }
27         }
28         for(int i=0;i){
29             a[i]=s[i];
30         }
31         System.out.print(a[0]);
32         for(int i=1;i){
33             System.out.print(","+a[i]);
34         }
35     }
36 }