使用while循环可被3整除的前偶数个n的总和

时间:2019-08-13 17:56:57

标签: java loops sum

也可被3整除的前N个偶数之和。因此,如果输入为5,则前N个偶数为0、2、4、6、8。在这5个数中,只有6个可被整除乘以3,则输出为6。 到目前为止,这是我尝试过的:

import java.util.Scanner;

public class Exercise1_3 {

   public static void main(String[] args) {

      Scanner sc = new Scanner(System.in);
      int n = sc.nextInt();
      int sum = 0;

      int count=0;

      while(count<n){
         // I am stuck here
         System.out.print(sum+" ");
         sum=sum+2;
         count++;
      }

   }
}
input: 5
// (0, 2, 4, 6, 8) only 6 divides by 3 thus
output: 6 

2 个答案:

答案 0 :(得分:1)

我发现您的代码有几个问题:

  1. 您总是将总和加2,而不是将可被三整除的数字相加。
  2. 您永远不会检查数字是否可以被三整除。您可以使用n % 3 == 0之类的代码进行检查。

尝试以下代码:

import java.util.Scanner;

public class Exercise1_3 {

    public static void main(String[] args) {

        // Read the input.
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        // Loop over the first n even numbers.
        int sum = 0;
        int count = 0;
        while (count < n) {
            int nextEven = 2 * count;

            // If the number is divisible by 3, then add to the running sum.
            if (nextEven % 3 == 0) {
                sum += nextEven;
            }

            count++;
        }

        // Print the output.
        System.out.println(sum);
    }
}

答案 1 :(得分:0)

如果您需要找到一个可被两个数字整除的数字,则需要找到这些数字的最高公因子(HCF-如果为2和3,则为6),并逐步检查每个数字是否可被整数整除。 HCF。

为进一步降低时间复杂度,一旦找到一个可被HCF整除的数字,我们就可以将该数字增加HCF(在这种情况下为6、12、18等),然后找到这些数字的总和。 / p>