从Java中减去X值的X百分比

时间:2014-08-15 19:39:50

标签: java recursion counter subtraction

我有一个循环计数器,取决于计数器的值 我想从10中减去7%等于计数器的值。例如,如果计数器的值为1,则I从10减去7%一次。如果计数器的值是2,我从10减去7%,得到9.3,然后从9.3减去7%。等等。

我使用以下代码:

double ten = 10.0;
double seven = 0.70;
double score = ten * seven / 100.0;

当这个运行时,我可以轻松地从10减去7%。但是,如何更改它以便下次运行时它将从9.3减去7%而不是10?

4 个答案:

答案 0 :(得分:2)

只需使用

double factor=Math.pow(0.93, counter);
double outputValue = inputValue * factor;

答案 1 :(得分:1)

听起来你想要类似的东西,

double ten = 10.0;
int seven = 7;
double score = ten;
while (Math.round(score) > 0) {
    double startScore = score;
    score = startScore - ((((double) seven) / 100) * startScore);
    System.out.printf("%f - %d%% = %f%n", startScore, seven, score);
}

输出

10.000000 - 7% = 9.300000
9.300000 - 7% = 8.649000
8.649000 - 7% = 8.043570
8.043570 - 7% = 7.480520
7.480520 - 7% = 6.956884
6.956884 - 7% = 6.469902
6.469902 - 7% = 6.017009
6.017009 - 7% = 5.595818
5.595818 - 7% = 5.204111
5.204111 - 7% = 4.839823
4.839823 - 7% = 4.501035
4.501035 - 7% = 4.185963
4.185963 - 7% = 3.892946
3.892946 - 7% = 3.620439
3.620439 - 7% = 3.367009
3.367009 - 7% = 3.131318
3.131318 - 7% = 2.912126
2.912126 - 7% = 2.708277
2.708277 - 7% = 2.518698
2.518698 - 7% = 2.342389
2.342389 - 7% = 2.178422
2.178422 - 7% = 2.025932
2.025932 - 7% = 1.884117
....
0.510271 - 7% = 0.474552

答案 2 :(得分:0)

double score = 10.0;
score = score * .93;

答案 3 :(得分:0)

首先0.70不是7%而是70%

如果你想以递归方式进行

你可以试试这个:

public static void main(String[] args) {
System.out.println(subs(10,2));
} 

public static double subs(double result, int counter) {
    if (counter == 0)
        return result;
    else
        return subs(result - (result * 0.07), --counter);
}

<强>结果:

8.649000000000001

上面的代码使用递归来计算它,直到计数器达到其0值来终止递归并返回结果。