2014-11-03 74 views
-2

我有一個非常簡單的問題,我無法弄清楚。在for循環中加起數字

這就是我想要做的:

6 * (1/(1*1) + 1/(2*2) + 1/(3*3) + … + 1/(N*N)) 

這是我的代碼的嘗試,這是行不通的。

int eingabe = 5; 
double c = 0; 

    for (int i = 1 ; i<=eingabe ;i++) { 
     c += 1/(i*i); 
    } 
    c *= 6; 
    System.out.println(c); 

請幫幫我!我需要做些什麼來使代碼有效?

+0

這是什麼問題? – Philippe 2014-11-03 14:58:21

+0

誰需要循環? '返回(n *(n + 1)/ 2);' – 2014-11-03 15:04:04

+1

@RossDrew這不是算術級數在這個問題 – rtruszk 2014-11-03 15:07:29

回答

7

變化1/(i*i)1.0/(i*i),目前你正在做的整數除法

2
int eingabe = 5; 
double c = 0; 

for (int i = 1 ; i<=eingabe ;i++) { 
    c += 1.0/(double)(i*i); 
} 
c *= 6; 
System.out.println(c); 
+1

鑄造到(雙)是不需要的這裏。當您將整數除以整數時,整數將自動轉換爲雙重 – rtruszk 2014-11-03 15:01:28

+1

,您不需要1.0。 1是足夠的,如果你投 – 2014-11-03 15:02:07