Вот ссылка на проблему, которую я решал на Hackerrank: - https://www.hackerrank.com/challenges/circular-array-rotation/problem
Вот мой код, этот код проходит все тестовые случаи, кроме четвертого теста. помогите мне, что здесь не так.
public class Solution { public static void main(String[] args) { try(Scanner in = new Scanner(System.in)) { int n = in.nextInt(); int k = in.nextInt(); int q = in.nextInt(); int a[] = new int[n]; for(int i = 0; i < n; i++) a[i] = in.nextInt(); for(int i = 0; i < q; i++) { int m = in.nextInt(); System.out.println(a[(n - k + m) % n]); } } }
}
Ты почти у цели! Вы забываете случай, когда k больше длины массива (т.е. более одного цикла); поэтому вы должны ограничить его только одним циклом.
k
a[(n - (k % n) + m) % n];