读书人

有一个可以向两边无限延绵的数轴有一

发布时间: 2013-07-04 11:45:28 作者: rapoo

有一个可以向两边无限延伸的数轴,有一个指针指向零点。第一次可以向左或向右移动一格,第二次可以向左或向右移动两格,第三次可以向左或向右移动三格。

lab:和 b=floor(a)+1 这2行对调下

引用:
楼上的算法完全看不懂,b=b+1后,然后又b = floor(a)+1 翻来覆去就是死循环。


Quote: 引用:

解方程(1+a)*a/2=N
得a
if a==floor(a)
return a
else
lab:
b=floor(a)+1
c=(1+b)*b/2-N;
if c%2==0
return b
else
b=b+1//N和b都是偶数的话可以加2
goto lab

格式没了 再发一次

[解决办法]
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

读书人网 >软件架构设计

热点推荐