循环右移:有n个整数,使得前面各数顺序向后移动m个位置,移出的数再从开头移入;编写一个函数实现以上功能,在主函数中输入n个整数并输出调整后的n个数。编写相应程序。
时间: 2024-03-23 14:36:30 浏览: 48
python 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数(示例)
好的,这是一个比较基础的算法题目,我们可以按照如下步骤实现:
1. 定义一个循环右移函数,接收两个参数,分别是一个整数列表和一个移动的距离m。
2. 将列表分为两部分,前面的n-m个数和后面的m个数,分别进行反转。
3. 再将整个列表进行反转。
4. 最后输出调整后的n个数。
具体实现代码如下:
```python
def right_shift(nums, m):
n = len(nums)
m = m % n
nums[:n-m] = reversed(nums[:n-m])
nums[n-m:] = reversed(nums[n-m:])
nums[:] = reversed(nums)
return nums
# 测试代码
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
m = 3
print(right_shift(nums, m))
```
运行结果如下:
```
[7, 8, 9, 1, 2, 3, 4, 5, 6]
```
说明我们的循环右移函数实现成功了。
阅读全文