题目
给定一个一维坐标轴,从正无穷到负无穷。假如你现在位于坐标O上,你每次可以向左或者向右移动,但有一个条件,那就是第i次移动时,移动的距离必须是i。请计算至少需要移动几次能到达给定的坐标s。
例:当x是3时,需要两步,第一步右移1,第二步右移2。 当x是4时,需要三步,第一步左移1,第二步右移2,第三步右移3。
思路
此题主要是一种思想。
最快的一定是全部左移或右移到达终点例如数字3。若无法全部左移到达终点,则需要某一步或两步往相反方向移动。
假设坐标s是为非负数(即便是负数也可以将到达相反数的操作全部反向),连续i次右移到达 c o u n t = i ( i + 1 ) 2 count=\frac{i(i+1)}{2} count=2i(i+1)格。
本题主要有以下几种情况:
- ∣ s ∣ = i ( i + 1 ) 2 |s| = \frac{i(i+1)}{2} ∣s∣=2i(i+1) 移动i次
- ∣ s ∣ > i ( i + 1 ) 2 |s| > \frac{i(i+1)}{2} ∣s∣