循环用于此特定求和

时间:2017-04-02 12:29:34

标签: java loops while-loop

给定模式......(1/2)^ 2 +(2/3)^ 2 +(3/4)^ 2 + ...

输入为n;这成为用于总和这些分数的最高分母。

当用户输入n = 2 ;总和很简单(1 / 2 )^ 2.

当用户输入n = 3 ;总和是(1/2)^ 2 +(2 / 3 )^ 2

我相信我已经解决了这个问题(我们假设用户输入的大于或等于2的整数)...

int n;
double sum = 0, counter = 2;

n = console.nextInt();

while(counter <= n) {
sum = sum + Math.pow(--counter/++counter, 2);
counter++;
}

System.out.println("Sum is " + sum);

是否有任何明显的&#34;简化我对这个问题的解决方案的方法(同时保持为while循环)?这是我写过的第一个循环之一。我不确定是否可以使用较少的变量来解决这个问题。

2 个答案:

答案 0 :(得分:0)

尝试

int n;
double sum = 0, counter=1;

n = console.nextInt();

   while((counter+1) <= n) {
    sum = sum + Math.pow(counter/(counter+1), 2);
    counter++;
    }

System.out.println("Sum is " + sum);

答案 1 :(得分:0)

为什么不简化它并写下来:

int n;
double sum = 0, counter = 2;

n = console.nextInt();

while(counter <= n) {
sum = sum + Math.pow((counter - 1)/counter, 2);
counter++;
}

System.out.println("Sum is " + sum);

我不知道谁先计算(++计数器)或( - 计数器),if(--counter)你的反应是正确的,但不要用++或 - 污染你的代码,只有你使用它们需要它。