返回num的倍数之和,介于1和100之间

时间:2018-10-10 14:19:25

标签: java

坚持这个问题:

  

给定一个整数num,返回num的倍数之间的和1   和100。例如,如果num为20,则返回值应为   20、40、60、80和100的总和,即300。如果num不是正数,   返回0。

我已经拥有的代码(我不确定它是否正确)是:

public int sumMultiples(int num)
{
    int sum = 0;

    for (int val = num; val <= 100; val++)
        sum = val;
    return sum;

}

8 个答案:

答案 0 :(得分:2)

首先,您不求和,而只是取最后一个值。
此外,您正在将值增加1而不是所选数字。
换句话说,试试这个:

public int sumMultiples(int num)
{
    if (num <= 0)
      return 0;

    int sum = 0;
    for (int val = num; val <= 100; val += num)
      sum += val;
    return sum;
}

答案 1 :(得分:0)

一种简单的方法是询问计数器是否可以除以您的数字,如果可以,则将计数器加到总和上。 所以:

for(int i=0; i<=100; i++){
    if(i%num==0){
        sum = sum + i;
    }
}

编辑:当然,您不必从0开始循环,从num开始更好

答案 2 :(得分:0)

尝试一下:

public int sumMultiples(int num)
{
    int sum = 0;

    for (int val = num; val <= 100; val += num)
        sum += val;

    return sum;
}

答案 3 :(得分:0)

您非常亲密。 您的循环需要以num递增,因此您需要获得倍数,并且总和需要添加到其中。您将在每个循环中覆盖总和。

alter table <table_name> enable trigger <trigger_name>;
PERFORM pg_sleep(<nrofseconds>);
alter table <table_name> disable trigger <trigger_name>;

答案 4 :(得分:0)

public int sumMultiples(int num)
{
   if(num < 0)
       return 0;

   int sum = 0;
   for (int val = num; val <= 100; val++){
            if(val % num ==0 )
                 sum = sum + val;
   }
   return sum
}

答案 5 :(得分:0)

这应该工作正常。第一个if检查num是否小于或等于0(而不是正数)。

int sum = 0;
if (num <= 0) return 0;
for (int val = num; val <= 100; val+=num) {
    sum += val;
}
return sum;

答案 6 :(得分:0)

您的代码将始终返回100,因为您将{su变量su值sum放入val中,该变量在每个循环中增加1直到达到100。

val增加1也是错误的,因为必须将num增加1。

您还忘记检查num < 0

我建议在这里使用一会儿,可读性更高的恕我直言:

public int sumMultiples(int num){

    if(num < 0) return 0;

    int result = 0;
    int loop = num;
    while (loop <= 100){
        result += loop;
        loop += num;
    }

    return result;
}

答案 7 :(得分:0)

数字必须为正数-为此,您需要一个if语句,该数字应大于0。 您需要更改倍数总和的代码。该代码应类似于:

if(num >0) //you may want to add && num <=100
{
    int sum = 0;
    for (int val = num; val <= 100; val+=num)
    {
       sum += val; //for your example iteration 1 = 20, 2 = (20+40=60), 3 = (60+60 = 120), 4 = (120+80 = 200), 5 = (200+100=300)
    }
    return sum;
}
else
{
    Console.WriteLine("Number has to be greater than 0");
    return 0;
}