#java #sum #modulo
#java #сумма #modulo
Вопрос:
Привет, сообщество StackOverflow.
У меня проблема с домашним заданием, и поэтому я не ожидаю, что вы, ребята, буквально решите ее за меня, но я борюсь с этим конкретным вопросом уже 5 дней и на самом деле не понимаю, что я делаю неправильно. Мы должны сложить все числа между началом и концом и разделить эту сумму на заданный делитель, если результат этого деления равен 0, программа должна выдать true , если нет, то false с использованием System.out.println()
.
Я знаю, что это очень простая проблема, но это моя вторая неделя, поэтому я еще не слишком хорошо знаком со всеми функциями Java. Это то, что я получил, но это не дает мне никакого ответа вообще. Я был бы признателен, если бы вы могли указать, где я ошибся. Заранее спасибо, ребята!
public class EX6 {
public static void main(String[]args) {
{
}
int divisor = 14;
int start = 42;
int end = 678;
int sum = 0;
int i;
i= 42;
while (i<=end) sum= start start ; i ;
if (sum % divisor == 0) {System.out.println(true);
} else{
System.out.println(false);
} }}
Ответ №1:
Во-первых, вместо sum = start start
«Я думаю, что ты хочешь sum = sum start
«. Вы хотите добавить к текущему итогу, а не установить sum
равным start start 1
.
Во-вторых, println
необходимо передать строку ( "true"
, not true
).
Кроме того, это не совсем ошибка, но в переменной нет необходимости i
. Если вы продумаете это, i
всегда равно start
, так что вы можете просто ссылаться start
вместо i
.
public class EX6 {
public static void main(String[]args) {
int divisor = 14;
int start = 42;
int end = 678;
int sum = 0;
while (start <= end) {
sum = sum start ;
}
if (sum % divisor == 0) {
System.out.println("true");
} else{
System.out.println("false");
}
}
}
Небольшое замечание о вашем исходном коде: всегда рекомендуется заключать код, который вы хотите выполнить в цикле, в скобки. Например, в вашем коде, while (i<=end) sum= start start ; i ;
, i
не является частью цикла, потому что в нем нет скобок. Так что проблема, вероятно, будет существовать вечно. Чтобы исправить это утверждение, вы бы просто использовали:
while (condition) {
//statement 1
//statement 2
//statement 3
}
Ответ №2:
Вот что вам нужно сделать:
int divisor = 14;
int start = 42;
int end = 678;
int sum = 0;
int i;
while (start<=end){
sum =start;
start = start ;
}
if (sum % divisor == 0) {
System.out.println(true);
} else{
System.out.println(false);
}
Комментарии:
1. Это неправильно. Он устанавливает sum = start start на каждой итерации цикла. Таким образом, в конечном итоге сумма будет просто равна 678 678. Неправильный ответ.
2. Прошу прощения, моя ошибка опечатки… Я изменю его на Sum =start;