【发布时间】:2015-01-11 14:08:40
【问题描述】:
我正在创建一个 Java 程序,但我正在处理一个数学问题,但似乎无法解决它。这是我的任务:
I have infinite numbers of numbered papers(1,2,3, ..).
This papers are stacked into stacks using 2 variables a and b.
If a = 5 and b = 3 the stacks look like:
So the first stack has "a" items (5) and each next has "b" more (3) as previous.
现在我必须找出一个方程式,它会告诉我我需要删除多少篇论文才能找到特定的一篇。
例如,如果我想获得编号为 20 的论文,我需要删除 4 篇论文才能到达。这就是我正在寻找的解决方案,当我输入一些特定的论文时,我只需要知道我需要移动多少(在它所在的堆栈中)才能到达它。当我有了这个我把所有的论文放回去并搜索下一个。
由于我将使用它制作一个程序,该程序将处理长数字(最多 16 位数字),因此最好的解决方案是找到一些“非循环”方程。例如,如果我将设置 a = 34354 和 b = 56774,并且我想知道要删除多少篇论文才能获得编号为 533663634611112 的论文。
我的输入将是:
- 数字 a 和 b
- 我想达到的论文数量 (c)
- 关于上述变量(c),我将输入这么多代表编号论文的数字
输出:
- 我必须移动的论文数才能找到我插入的所有论文
所有数字都会很长,所以最好制作一个非循环程序。 感谢您提供有关此问题的所有帮助。
【问题讨论】:
-
和编程有关吗?为什么会有很多s-h-i-t-s?
-
添加编程语言标签并将您的代码包含在问题中。现在这个问题还不够清楚。
-
实际上我只是在寻找那部分代码,它将返回需要移动以到达特定纸张的纸张数量。我想自己制作所有其他东西,而不是寻找整个程序。
-
所以 a 是初始堆栈大小,而 b 是堆栈大小的增量。你确定你可以在没有循环的情况下解决这个问题吗?除非您以某种方式编写递归公式来确定索引,否则请使用线性递归公式使其成为封闭公式。我刚才在想一个递归公式,但我有点卡住了,我在工作,所以我的时间有限,对不起。
-
是的,这就是我正在尝试的,实际上我需要索引纸张所在堆栈的顶部纸张编号。因为我要搜索的纸张数量最多为 5数字编号,并且纸张编号最多可以是 16 位,认为循环需要很长时间。对所有搜索过的论文都有它是的,但没有一个嵌套的用于搜索锄头的许多论文要为每个移动。
标签: java math equation numbered