有一个可以向两边无限延伸的数轴,有一个指针指向零点。第一次可以向左或向右移动一格,第二次可以向左或向右移动两格,第三次可以向左或向右移动三格。解决方法
有一个可以向两边无限延伸的数轴,有一个指针指向零点。第一次可以向左或向右移动一格,第二次可以向左或向右移动两格,第三次可以向左或向右移动三格。
有一个可以向两边无限延伸的数轴,有一个指针指向零点。第一次可以向左或向右移动一格,第二次可以向左或向右移动两格,第三次可以向左或向右移动三格。
给出X ( -10 ^ 9 < X < 10 ^ 9) 求 指针移到 X 需要 最少 几次移动(N)。
X = 1, N = 1
X = 2, N = 3
X = 3, N = 2
X = 4, N = 3
X = 5, N = 5
是关于 0 点 对称的。
------解决方案--------------------
其实很简单,
如果X为奇数,n满足以下两个条件:
1。1-(n-1)中奇数的数目为奇数个
2。满足条件1的最小n,保证1+2+...+(n-1)>=n
如果X为偶数,n满足以下两个条件:
1。1-(n-1)中奇数的数目为偶数个
2。满足条件1的最小n,保证1+2+...+(n-1)>=n
------解决方案--------------------
写错了
lab:和 b=floor(a)+1 这2行对调下
------解决方案--------------------
1.解方程(1+a)*a/2=N得正数解a
2.如果a是整数,结果就是a
3.如果a不是整数,取大于a的最小整数,记作b
4.c=(1+b)*b/2-N;
5.如果c是偶数,结果就是b
6.如果c不是偶数 b++,跳转到步骤4
N=12
1.a=4.4244
2.b=5
3.不成立
4.c=6*5/2-12=3
5.不成立
6.b=6 转到步骤4
4.c=7*6/2-12=9
5.不成立
6.b=7 转到步骤4
4.c=8*7/2-12=16
5.ok
12=1+2-3+4-5+6+7
有一个可以向两边无限延伸的数轴,有一个指针指向零点。第一次可以向左或向右移动一格,第二次可以向左或向右移动两格,第三次可以向左或向右移动三格。
给出X ( -10 ^ 9 < X < 10 ^ 9) 求 指针移到 X 需要 最少 几次移动(N)。
X = 1, N = 1
X = 2, N = 3
X = 3, N = 2
X = 4, N = 3
X = 5, N = 5
是关于 0 点 对称的。
------解决方案--------------------
其实很简单,
如果X为奇数,n满足以下两个条件:
1。1-(n-1)中奇数的数目为奇数个
2。满足条件1的最小n,保证1+2+...+(n-1)>=n
如果X为偶数,n满足以下两个条件:
1。1-(n-1)中奇数的数目为偶数个
2。满足条件1的最小n,保证1+2+...+(n-1)>=n
------解决方案--------------------
写错了
lab:和 b=floor(a)+1 这2行对调下
------解决方案--------------------
1.解方程(1+a)*a/2=N得正数解a
2.如果a是整数,结果就是a
3.如果a不是整数,取大于a的最小整数,记作b
4.c=(1+b)*b/2-N;
5.如果c是偶数,结果就是b
6.如果c不是偶数 b++,跳转到步骤4
N=12
1.a=4.4244
2.b=5
3.不成立
4.c=6*5/2-12=3
5.不成立
6.b=6 转到步骤4
4.c=7*6/2-12=9
5.不成立
6.b=7 转到步骤4
4.c=8*7/2-12=16
5.ok
12=1+2-3+4-5+6+7