我正在创建一个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),我将输入这么多代表编号论文的数字
输出:
- 我必须移动的论文数才能找到我插入的所有论文
所有数字都会很长,所以最好制作一个非循环程序。感谢您提供有关此问题的所有帮助。