这是我的代码,我不知道下一步该做什么我是初学者
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);
}
}
答案 0 :(得分:3)
使用最新版本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());
}
}
答案 1 :(得分:2)
你必须做这样的事情
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 :(得分:1)
如果我理解你的问题,它应该像
一样简单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);
输出
sum = 76795
答案 3 :(得分:0)
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);
在问题中,您说数字可以被13或15或17整除而不是30,所以将相同的逻辑应用于if语句。这会给你正确的结果。
答案:76795