作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:编写一个方法,以两个整数n和m为参数,并返回从n(包括n)到m(包括m)的所有数字(数字数组)的和。
public int getSum(int n, int m){
this.n = n;
this.m = m;
int [] x = {n,m};
int result = 0;
for(int i=0; i<x.length; i++){
result += x[i];
}
return result;
}
如果n=1且m=4该方法返回5,但该方法需要返回10,(1,2,3,4)=(1+2+3+4)。猜猜这条线不对int [] x = {n,m};因为如果 n=1 且 m=4,则数组将为 {1,4}。如何解决这个问题,如果n=1且m=4,需要创建数组{1,2,3,4}
最佳答案
试试这个:
public int getSum(int n, int m){
int result = 0;
for(int i = n;i <= m;i++)
result += i;
return result;
}
或者这个:
public int getSum(int n, int m){
int result = 0;
while(n <= m)
result += n++;
return result;
}
或者也许用有趣的数学:
public int getSum(int n, int m){
return (m*(m+1)/2) - ((n-1)*((n-1)+1)/2)
}
F(n) = (n*(n+1)/2) = 0+1+2+...+n
F(m) - F(n-1) = n + n+1 + n+2 + ... + m
关于java - 数组、整数和数组的和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24041461/
我是一名优秀的程序员,十分优秀!