Write a program to sum all the integers between 1 and 1000, that are divisible by 13, 15 or 17, but not by 30 [closed]

和自甴很熟 提交于 2020-06-29 08:57:08

问题


This my code i don't know what to do next I'm totally beginner

        int number = lb;
        while(number <= ub){
            if (number % 7 == 0 && number % 15 == 0 && number % 17 == 0 && number % 30 != 0 ){
                sum+= number;       

            }
            number++;               
        }
        System.out.println("Answer: " + sum);
    }

}

回答1:


You have to do something like this

    int sum=0;
    for(int i=0;i<1000;i++){ // iterate from 0 to 1000
        if ((i % 13 == 0 || i % 15 == 0 || i % 17 == 0) &&i % 30 != 0 ){
           // take numbers divide by 13 or 15 or 17 which not divide by 30
           sum=sum+i; // adding that number to current sum
        }
    }
    System.out.println("Answer: " + sum); // final sum

Out put:

    Answer: 76795



回答2:


do it in one line using the latest release, Java 8:

package com.example;

import static java.util.stream.IntStream.rangeClosed;
import static java.lang.System.out;

public class Main {
    public static void main(String[] args) {
        out.println(rangeClosed(1, 1000)
                   .filter(n -> n % 13 == 0 || n % 15 == 0 || n % 17 == 0)
                   .filter(n -> n % 30 != 0)
                   .sum());
    }
}



回答3:


If I understand your question, it should be as simple as

int sum = 0;
// from 1 to 1000
for (int num = 1; num <= 1000; num++) {
  if (num % 30 == 0) {
    continue; // If it's divisible by 30, skip it.
  }
  if (num % 13 == 0 || num % 15 == 0 || num % 17 == 0) {
    sum += num; // If it's divisible by 13 or 15 or 17 add it to sum.
  }
}
System.out.printf("sum = %d%n", sum);

Output is

sum = 76795



回答4:


int number = 0b1; //the proper way to start a binary number
            int sum = 0;
while(number <= 1000){
 if ((number % 13 == 0 || number % 15 == 0 || number % 17 == 0) && number % 30 != 0 ) {
  sum+= number;

   }
 number++;
}
 System.out.println("Answer: " + sum);

In the question you said numbers that are divisible by 13 or 15 or 17 and not by 30, so apply that same logic to the if statement. That would give you the right result.

Answer: 76795



来源:https://stackoverflow.com/questions/25112365/write-a-program-to-sum-all-the-integers-between-1-and-1000-that-are-divisible-b

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!