PAT-B] 1008. 数组元素循环右移问题 [模拟]
来源:互联网 发布:淘宝店卖家开店时间 编辑:程序博客网 时间:2024/05/15 11:59
链接:1008. 数组元素循环右移问题 (20)
题意
题意应该不难理解。
首先给两个数N, M
,分别表示数组的大小和右移几位
也就是说第1
位数移动到M + 1
位,以此类推。
而多出来的数则放在数组的前面。
很像小时候玩的贪吃蛇。
比如样例: 6 2
1 2 3 4 5 6
先是前面的四个数都右移两位: _ _ 1 2 3 4
然后多出来的5, 6
移动到数组前面: 5 6 1 2 3 4
分析
题目理解起来并不难。不过要注意几点:
- 给的
M
可能会比N
要大,也就是说可能右移了好几圈。
比如在400
米的操场上跑步,跑100
米和跑500
米最后停的位置是一样的。
所以这里我们要对M
进行处理,让M
对N
取模(M % N
),得到有效的偏移量 - 说是右移,其实我们可以在存入数组的时候直接把元素放在合适的位置。假装我们已经右移了。
(当然想要严格按题意来的可以忽略这一点)
代码
#include <cstdio>int num[300];int main(){ int N, M; while( ~scanf( "%d%d", &N, &M ) ){ int m = M % N; // 偏移量 for( int i = m; i < N; i++ ) scanf( "%d", num + i ); for( int i = 0; i < m; i++ ) scanf( "%d", num + i ); printf( "%d", num[0] ); for(int i = 1; i < N; i++ ){ printf( " %d", num[i] ); } puts(""); } return 0;}
小结
毕竟OJ都是只看结果的呢…
阅读全文
0 0
- PAT-B] 1008. 数组元素循环右移问题 [模拟]
- PAT-B 1008. 数组元素循环右移问题(python)
- PAT(B)1008. 数组元素循环右移问题 (20)
- pat(B) 1008. 数组元素循环右移问题
- PAT-B 1008. 数组元素循环右移问题
- PAT-B 1008. 数组元素循环右移问题
- PAT-B 1008. 数组元素循环右移问题 (20)
- PAT-B 1008. 数组元素循环右移问题 (20)
- PAT数组元素循环右移问题
- pat数组元素循环右移问题
- PAT 1008. 数组元素循环右移问题 (20)
- PAT - 1008. 数组元素循环右移问题 (20)
- PAT 1008. 数组元素循环右移问题
- PAT Basic 1008. 数组元素循环右移问题 (20)
- PAT 1008. 数组元素循环右移问题
- PAT乙级 1008. 数组元素循环右移问题
- PAT (Basic Level)1008. 数组元素循环右移问题
- PAT Basic 1008. 数组元素循环右移问题
- 写高质量OC代码52建议总结:49.对自定义其内存管理语义的collection使用无缝桥接
- 老有所依!LoRa物联网技术在养老智能监护中的应用
- NYOJ746 整数划分(搜索||DP)
- NOIP2016 T1 玩具谜题
- InnoDB关键特性之double write
- PAT-B] 1008. 数组元素循环右移问题 [模拟]
- 技术点-SpringBoot-注解总结
- fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突——我的解决方案
- 判断一个字符串是否在一个字符串数组中
- 获取手机唯一识别码IMEI
- 几大常用排序算法编写及正确性、效率测试
- Linux /etc/sysconfig/network-scripts中ifcfg-eth0 网卡配置没有IPADDR配置IP属性
- mysql复制
- 关于ECShop中的dwt文件的可编辑区域