2011-08-03 44 views
-3

何找到給定間隔的總和? 例如1到10或11到30的總和?找到給定間隔的總和?

+2

你是指整數的總和?聽起來像一個家庭作業,你到目前爲止嘗試過什麼。 –

+2

這篇維基百科文章提供了你需要的公式:http://en.wikipedia.org/wiki/Summation –

+1

答案涉及到你可以在腦海中做的簡單數學。爲什麼你需要一個這樣的程序? –

回答

0

快速而骯髒!

int sum = 0; 
int start = 1; 
int end = 10 
for(i=start; i<=end; i++){ 
    sum += i; 
} 

注意:本示例假定圖10是包括在範圍內,如[1,10]和不[1,10)

+1

如果這確實是OP想要做的事,那就太過分了。可以在O(1)中完成。 – amit

+0

真的,因此,快速和骯髒(沒有太多的想法)@謝里夫的答案是更深思熟慮! – gotomanners

+0

這並不快。它需要6行代碼。 @AlexR解決方案是一般化的,O(1)並且最容易編程。 – amit

0
int start = 1; 
int end = 10; 
int sum = 0; 

for (i = start; i <= end; i++) { 
sum+=i; 
} 
System.out.println("Sum is" + sum); 

另一途徑:

while(end > start) { 
sum+=start++; 
} 
System.out.println("Sum is" + sum); 

或者您可以使用 http://en.wikipedia.org/wiki/Arithmetic_progression

3

如果您想查找從1到N的數字總和

int summation = (N*N + N)/2; 

職能是:

//computes summation from 1 to N 
public int summation(int N){ 
    return (N*N+N)/2; 
} 

我們從k和n發現的總和,我們簡單地積雪summation(N) - summation(K)

public int summation(int K, int N){ 
    return summation(N)-summation(K); 
} 

+0

+1,因爲沒有提供完整的答案。這提供瞭解決方案的一部分,同時仍然強迫他們_想_。 –

+0

這個解決方案在OP的編輯後沒用。他想k到n,而不是1到N. – amit

+1

真的嗎?我認爲k到n是求和(n) - 求和(k)?你怎麼看? –

6

一般來說是N * (first + last)/2

+1

+1的一般答案。 關於以下內容的全部細節和解釋:http://en.wikipedia.org/wiki/Arithmetic_progression#Sum – amit

0

這似乎是一個家庭作業,我認爲你是如此初學Java。然後我就可以幫你與這些提示:

  1. 你可以使用一個for循環將從第一個數字遍歷到最後
  2. 你可能有總和變量,應在每次迭代增加for循環
  3. 每個Java程序都應該至少有一個類。在其中一個(和只有一個)應該有一個主要功能
相關問題