热门
最新
红包
立Flag
投票
同城
我的
发布
PAT (Basic Level) Practice (中文)
1008数组元素循环右移
看了下面这位大佬的解析 https://blog.csdn.net/daydayp/article/details/87857650?utm_source=app&app_version=4.16.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
然后(i + m%n)%n这部老半天没看懂
直到问了另一位大佬,看了他的解析:
大概是指在输入时就按照右移后的位置输入,i是原本的(右移前)的位置,k%n是指需要右移的位数,括号外的%n用于在向右超出后再回到左边填补。例如i=0时,即第一个输入的值,原本的位置是a[0],k=2,n=6,k%n=2,则需要右移两位,右移后位置为a[2],而2%6结果仍为2,所以第一个输入的值最终的位置是a[2]。再例如i=5时,即最后一个输入的值,原本的位置为a[5],i=5加上右移两位的k%n后得到7,7超出了输入范围a[0]~a[5],在括号外进行%n后,得到1,因此最后一个输入的值最终的位置是a[1]。同理可验证其他情况。QAQ
我才明白了
CSDN App 扫码分享
评论
点赞
打赏
- 复制链接
- 举报