[英]Summing up all previous numbers
我想實現一個算法,該算法采用第一個元素並構建總和,如下所示:
實際上,我正在使用1元素來構建和,然后在第一和第二中構建和,然后在第一,第二和第三中構建和等等。
我試過了:
for (int l = 0; l < valueList.size(); l++) {
double result = ((valueList.get(0) + valueList.get(l)) * (l + 1))/2;
resultList.add(result);
}
但是,這似乎不起作用。 如何實現這樣的算法?
謝謝您的回答!
嘗試這個
for (int l = 0; l < valueList.size(); l++) {
double result = ((l>0) ? resultList.get(l-1) : 0) + valueList.get(l);
resultList.add(result);
}
該算法類似於階乘函數:
f(x) = x + f(x-1)
您可以遞歸實現:
public int sum(int x) {
if (x == 0) {
return 0;
}
return x + sum(x - 1);
}
或迭代地:
int sum = 0;
for (int i = x; i > 0; i--) {
sum += i;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.