Java數列循環左移


描述

有n個整數組成一個數組(數列)。現使數列中各數順序依次向左移動k個位置,移出的數再從尾部移入。輸出移動后的數列元素。
題目沒有告訴你n的范圍,要求不要提前定義數組的大小。
另外要求定義並使用函數LeftShift()
void LeftShift(int *a, int n, int k)
{
//循環移動后的數值仍然存入數組a中
}

輸入

輸入分2行,第一行是兩個整數n和k。第二行是n個整數。數據用','隔開。

輸出

輸出有一行,是循環左移后的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<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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM