0

私はJavaが初めてで、解決すべき簡単な問題がありますが、実際にそれを完了する方法がわかりません。

次のようなループがあります。

    double i = 0.5 , y , w, p;
    for (double x = 0 ; x <= 2; x=x+i)
    {
     y = Math.pow(x, 2);
     w = 4 - y;
     p = w * i;
    }

したがって、計算は 5 回行われます。むろん難しいことではありませんが、結果を加算する方法がわからないので、結果のみを表示させることができました。

4

4 に答える 4

1

私が正しく理解していれば、各反復の結果を追加する必要があります。その場合、次のようにすれば十分です。

double i = 0.5 , y , w, p = 0;
for (double x = 0 ; x <= 2; x=x+i)
{
    y = Math.pow(x, 2);
    w = 4 - y;
    p += w * i;
}
System.out.println(p);
于 2013-10-20T12:48:10.260 に答える
0

合計を保持する変数を作成する必要があります。例えば;

double sum;
double i = 0.5 , y , w, p;
for (double x = 0 ; x <= 2; x=x+i)
{
 y = Math.pow(x, 2);
 w = 4 - y;
 p = w * i;
 sum += p;
}

sum += p の使い方に注目してください。これはsum = sum + pの省略形です。x=x+iで同じことを行う必要があります。また、 y = Math.pow(x, 2)y = x*xに変更する必要があります。これは、Math.pow を使用するよりも高速です。

これらすべての変更の後、最終的なコードは次のようになります。

double sum;
double i = 0.5 , y , w, p;
for (double x = 0 ; x <= 2; x += i)
{
 y = x * x;
 w = 4 - y;
 p = w * i;
 sum += p;
}

サイドノート:

p += w * iを実行することもできますが、私の意見では、合計を保持する変数を作成する方がはるかにクリーンです。

于 2013-10-20T12:56:43.097 に答える
0

答えを教えなくても

を作成し、値が与えられるたびに追加double sumPしますppsumP

sumPループの前に必ず配置してください。

ループ後、印刷sumP

于 2013-10-20T12:48:59.750 に答える
0

表現エラーのため、浮動小数点の反復は危険です。取得する反復回数がわかっているため、int 値を反復処理する方が適切です。

double f = 0.5, p = 0.0;
for(int j = 0; j <= 4; j++) {
   double x = j * f;
   p += f * (4 - x * x);
}

System.out.println(p);

i通常はループに使用されるため、 for doubles の使用は避けることをお勧めします。


考慮して編集

for (double d = 0; d <= 2; d += 0.1)
    System.out.println(d);

版画

0.0
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
1.2
1.3
1.4000000000000001
1.5000000000000002
1.6000000000000003
1.7000000000000004
1.8000000000000005
1.9000000000000006

注: 2.0 ループはありません。

一方

for (int i = 0; i <= 20; i++) {
    double d = i / 10.0;
    System.out.println(d);
}

版画

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
于 2013-10-20T12:54:11.463 に答える