问题是:
我用来在rapidweaver中构建堆栈的API不允许除法或浮动,但实际上我想将一个数字除以另一个数字。
空气污染指数的有关规则:
API放在html、css和javascript文件中,并在生成项目文件之前编译成实际的html、css和javascript。
%( math )%%( %( 1 + 3 )% * 6 )%
使用%( 1 + 3 * 6 )%会破坏它,在每个%()%中只允许一个操作。%id=variableName%%( %id=variableName% * 2 )%我想做的是:
%( %id=CB_seconds% / 2 )%或%( %id=CB_seconds% * 0.5 )%
但是,这些^是不允许的,因为一些愚蠢的原因.
我想把用户输入的%id=CB_seconds%分成两半。用户将把%id=CB_seconds%定义为0到10,000之间的整数。我需要在不同领域的原始价值和分割价值。一个可能的解决方案是让用户指定一个介于0到5000之间的值,并将这个值乘以2。然而,这是行不通的,因为用户正在定义动画的长度,让他们指定真正想要的长度的一半是令人困惑的。
我的问题
是否有办法只使用整数和乘法/加法/减法就能得到一个数字的一半,而不知道该数字在手边会是什么?
下面是Stacks https://yourhead.tenderapp.com/kb/stacks-api/templates的文档
发布于 2014-06-25 22:37:37
如果您只能访问+和*,这是不可能的。
这是数学问题:
如果您有一个只能用加法和乘法编写的函数,如:
a/b=f(a,b)你可以把f展开成多项式函数。
如果你把n增长到无穷大
你会有f(n,n)=n/n=1
但是多项式总是趋向于+无穷,-infinite或0,所以这样的函数不可能存在。
发布于 2014-06-25 23:25:24
同样,你可以把乘法定义为一系列的加法,你也可以把一个除法定义为一系列的减法。为此,您需要循环和比较功能。若要将a除以b,假设两者都是整数和a > b,则伪代码为:
division = 1
c = a - b
while (c > b)
c = c - b
division = division + 1
end while此时您有a / b = division,剩下的是c。
以a = 10和b = 3为例
division = 1
c = 10 - 3 = 7
c (=7) > 3 --> Continue
c = 7 - 3 = 4
division = 2
c (= 4) > 3 --> Continue
c = 4 - 3 = 1
division = 3
c (= 1) < 3 --> Stop此时division = 3和c = 1,即10 / 3 = 3 (+ 1)。
我看到堆栈API允许进行比较。如果它也包含循环,那么您可以实现上面的内容。
说了以上所有的话,他们没有分裂真是太蠢了。
发布于 2014-06-25 22:43:23
我知道这是非常糟糕的编码,但是您可以将每个数字从1增加一倍到5000,看看它是否是用作输入的数字(还可以检查是否是number+1来查看圆角分数)。因为它只是5000次操作,所以它不应该对性能有很大的影响。
https://stackoverflow.com/questions/24419429
复制相似问题