首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅使用乘法和整数,我如何‘除以’一个数字?

仅使用乘法和整数,我如何‘除以’一个数字?
EN

Stack Overflow用户
提问于 2014-06-25 22:09:07
回答 4查看 322关注 0票数 1

问题是:

我用来在rapidweaver中构建堆栈的API不允许除法或浮动,但实际上我想将一个数字除以另一个数字。

空气污染指数的有关规则:

API放在html、css和javascript文件中,并在生成项目文件之前编译成实际的html、css和javascript。

  1. 在这个API中,每个数学操作都封装在: %( math )%
  2. 因此,为了实现(1 + 3) *6,应该是: %( %( 1 + 3 )% * 6 )% 使用%( 1 + 3 * 6 )%会破坏它,在每个%()%中只允许一个操作。
  3. 此外,我还可以使用表示用户输入的变量。 %id=variableName%
  4. 因此,如果我想将用户输入乘以2,我可以这样做: %( %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的文档

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-06-25 22:37:37

如果您只能访问+*,这是不可能的。

这是数学问题:

如果您有一个只能用加法和乘法编写的函数,如:

代码语言:javascript
复制
a/b=f(a,b)

你可以把f展开成多项式函数。

如果你把n增长到无穷大

你会有f(n,n)=n/n=1

但是多项式总是趋向于+无穷,-infinite或0,所以这样的函数不可能存在。

票数 4
EN

Stack Overflow用户

发布于 2014-06-25 23:25:24

同样,你可以把乘法定义为一系列的加法,你也可以把一个除法定义为一系列的减法。为此,您需要循环和比较功能。若要将a除以b,假设两者都是整数和a > b,则伪代码为:

代码语言:javascript
复制
division = 1
c = a - b
while (c > b)
  c = c - b
  division = division + 1
end while

此时您有a / b = division,剩下的是c

a = 10b = 3为例

代码语言:javascript
复制
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 = 3c = 1,即10 / 3 = 3 (+ 1)

我看到堆栈API允许进行比较。如果它也包含循环,那么您可以实现上面的内容。

说了以上所有的话,他们没有分裂真是太蠢了。

票数 2
EN

Stack Overflow用户

发布于 2014-06-25 22:43:23

我知道这是非常糟糕的编码,但是您可以将每个数字从1增加一倍到5000,看看它是否是用作输入的数字(还可以检查是否是number+1来查看圆角分数)。因为它只是5000次操作,所以它不应该对性能有很大的影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24419429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档