0

假设我有一个变量dimension,我想将它从 value 更改a为 value bab是整数,第一个比第二个大。

要线性地做到这一点,我应该这样做:

while (dimension < a)
dimension = dimension + 1

但是,如果我希望它成倍增长呢?我完全不擅长数学,我无法弄清楚这一点。我在尝试:

while (dimension < a)
dimension = dimension * dimension

关键是价值几乎立即失控,它变得巨大(远大于a

即使我尝试使用巨大的比例(通过设置a一个巨大的值)我也无法完成这个......但似乎这些人做到了,我认为这也应该很容易!

他们还设法对各种疯狂的方程式做同样的事情,只要我能够实现一个,所有这些对我来说都很容易!

我只想要一个值从 1 增加到 2 但逐渐......

希望有人能帮忙,谢谢!

4

1 回答 1

1

一种非常简单的方法是让第二个计数器在每次迭代中增加一个较小的量,然后将它乘以原始计数器来设置它。例如,在您的情况下:

step = 1.2;

while(dimension < a) {
    dimension = Math.max(dimension * step, a);
    step += 0.1;
}

可能需要调整这些值才能达到确切的预期效果,但这就是它的总体思路。对 Math.max 的调用将确保该值永远不会超过您的目标。

于 2013-02-15T01:59:19.713 回答