1.这是一个控制数组元素右移的问题。将一个数组中的所有元素全部向同一个方向移动相同的距离。如果一个元素移动的距离大于该元素与最后一个元素的距离,则应该接着第一个元素继续移动。

2.这是一个数组的问题,移动距离其实就是元素的赋值,把元素的值赋给他移动后所在的单元就可以了。

3.先想想对于一个单独的元素因该怎么处理:

①先要弄清楚的就是元素的位置的象征其实就是它的下标,位置的改变其实就是下标的改变。

②然后就是对一个元素的处理分为两种情况:

    a.移动不会使下标超过上限或者下限;

    b.移动会使下标超过上限或者下限。

③要分出这两种情况,首先就要一个判断,要设计一个判断的语句来对分别对应这两种情况元素进行分流。

④对于a情况,很容易处理。元素的下标加上或者减去要移动的距离就是目标单元,再把元素的值赋给这个单元即可。

⑤对于b情况,稍微复杂一点。比如这个数组长度为10,元素A的要向右移,那么它的下标要加上移动的距离,加起来以后的值n>9。那么在移动到第十个元素的位置的时候,A元素还要继续向右移,还要移动的距离s就是等于n-9,而这时候下标是从零开始加,所以下标还要减1,所以最后目标单元的下标就是n-10,最后进行赋值就可以了。

⑥在弄明白一个元素怎么处理后,就可以用循环语句对整个数组进行处理了。

4.这个问题最关键的就是对下标的运算还有两类情况怎么区分。这两个问题解决就是循环语句和判断语句的运用了。

5.对于情况b,有时候可以简化算法,这个分类就会更多,要加多一些判断语句。总体来说我都是自己演算出来的。