2016-10-15 9 views
1

Привет, сообщество 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", а не 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 
} 
0

Вот что вам нужно сделать:

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); 
} 
+0

Это неправильно. Он устанавливает sum = start + start на каждой итерации цикла. Так что в конце сумма будет всего 678 + 678. Не правильный ответ. – nhouser9

+0

Извинения, Моя ошибка опечатки ... Я буду менять его на Sum + = start; –

 Смежные вопросы

  • Нет связанных вопросов^_^