PTA 7-1 数组元素循环右移问题 (20分)
输入样例:
6 2
1 2 3 4 5 6
输出样例:
5 6 1 2 3 4
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner sc=new Scanner(System.in); 5 int n=sc.nextInt(); 6 int m=sc.nextInt(); 7 int a[]=new int[n]; 8 for(int i=0;i<n;i++){ 9 a[(i+m)%n]=sc.nextInt();//数组位置的逻辑需要清楚 10 } 11 System.out.print(a[0]); 12 for(int i=1;i<n;i++){ 13 System.out.print(" "+a[i]); 14 } 15 } 16 }
有参考网上的各种答案,但是看别人的代码实在是太长了 看不下去(看不懂)就开始研究自己写 可能和别人方法都是一样的。
一开始的做法是三个for循环 第一个用来赋值 第二个移动 第三个输出 当时就觉得有点繁琐,想着一会再简化一下,结果算数组位置的时候就算错了 【(i+m)%n】 就干脆全删掉,直接写自己想的简化的代码,然后碰巧答案正确。
第九行代码a[(i+m)%n]是最重要的。
看似不起波澜的日复一日 会突然在某一天 让你看到坚持的意义