1 数组移位
将一个5元素数组,右移n位,n从键盘输入,首尾相接:
例如: 数组中的元素为 {1, 2, 3, 4, 5}; 那么 n == 3; 的结果如下:
{3, 4, 5, 1, 2}
2 分解问题
数据是向右边移三位,那么,我转化成先移一位的情况。因为当移一位的问题解决了,移动n位只需要将此过程循环n次即可3 分步操作
// 1. 把a[1]放到临时空间t t = a[1];
// 2. 依次把前面元素的值放到后面的空间里面.[从后面开始]
for (int i = 4; i > 0; i--) {
a[i] = a[i-1];
}
// 3. 把临时空间t的值放到 a[2] a[2] = t;
4 解决问题
假定上述模块化的操作整体为 A,那么循环n次即可:
for (int i = 0; i < n; i++) { A; }
5 感想
在复杂的生活中,学会把它简化成一个简单的步骤。实现它,再扩展,再实现它。
就正如这编程一样!