import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算出旺仔哥哥最后会站在哪位小朋友旁边 * @param a int整型一维数组 第 i 个小朋友的数字是 a_i * @param m int整型 表示旺仔哥哥的移动次数 * @return int整型 */ public int stopAtWho (int[] a, int m) { // write code here // 1 2 3 4 5 n // 0 1 2 3 4 ... n-1 // a[0-2+6] a[0-2+6] if(a.length == 1){ return 1; } // 数组中每个元素对数组长度取模,限制范围 for(int i = 0;i<a.length;i++){ a[i] %= a.length; } // 被除数 ÷ 除数 = 商 ... 余数 // a ÷ b = q ... r // 其中:a % b = r int pos = 0-a[0]+a.length; for(int i = 1;i<m;i++){ pos = pos-a[pos] < 0 ? pos-a[pos]+a.length : pos-a[pos]; } // 取到的pos是下标,返回需要再+1 return pos+1; } }