如何计算用户使用Java输入的特定数字之间的所有偶数之和?
答案 0 :(得分:2)
天真的解决方案是从0开始并继续添加偶数这样的数字:
public static int square (int x)
{
int sum= 0;
for(int i = 0; i <= x; i+=2) sum += i;
return sum;
}
但你不必这样做。这是一个简单的算术序列,要计算总和,您可以使用公式sum= n(a1 + an)/2
,其中a1
是第一项,'an'是最后一项,n
是总数序列中的术语。
对于您a1
是2,an
是参数,您可以通过将参数(向下舍入到最接近的偶数)除以2来计算n
。
这样你的功能就是:
public static int square (int x)
{
//you can do error checking if you want, x has to be non negative
if( (x%2) !=0) x--;
//x is guaranteed to be even at this point so x/2 is also an int
int sum= x/2 *(1+x/2);
return sum;
}
答案 1 :(得分:1)
这个问题的诀窍是“偶数”。通过使用%(模数运算符),您可以轻松找到这些数字。如果您对Mod感到好奇,请查看此链接https://msdn.microsoft.com/en-us/library/h6zfzfy7(v=vs.90).aspx
使用您目前拥有的方法并进行一些修改,您可以实现解决方案。
static int square (int x)
{
int result = x;
for(int i = 0; i < x; i++){
if(i%2 == 0){
result += i
}
}
return result;
}