2013-09-19 3 views
2

Я работаю на некоторых заданиях для моего интро класса программирования и один из вопросовОтображение # 1 - 1000 не делится на 13? В Java

Напишите программу, которая отображает все целые числа от 1 до 1000, что не делится на 13. (Hint : x не равномерно делится на 13, если истинно выражение x% 13! = 0. Напомним, что% является оператором остатка.) Мой ход мысли состоял в том, что я хочу, чтобы программа выполняла х, что угодно это может быть, если оно меньше 1000, затем разделите его на 13, а если остаток не равен 0, тогда отобразите его. Если остаток равен 0, не отобразите его.

Моя первая попытка была следующая,

public class Ch4_Lab_5 
{ 
    public static void main(String[] args) 
    { 
     int x = 1; 

    while (x < 1000) 
     { 
      System.out.println(x); 
      x++; 
     } 
    } 
} 

но при запуске он просто печатает числа от 1 до 999. Я думаю, может быть, это должно быть, если/другое заявление, но я неуверенный относительно того, что будут параметры «else».

Моя книга дает это в качестве примера:

public class Ch4_Example 
{ 
    public static void main(String[] args) 
    { 
     int x = 1; 

     while (x*x < 5000) 
      { 
      System.out.println(x + " squared = " + x*x); 
      x++; 
      } 
    } 
} 

И, конечно, она работала отлично.

Программа, которую я должен писать, не совсем такая же, как в примере, приведенном в книге, но это тот же принцип, и я некоторое время играл с этим и не могу показаться определить проблему.

Я уверен, что это очень простой вопрос с еще более простым ответом, но я новичок в программировании, и я немного потерян.

Любые идеи?

+6

Ни один из ваших программ упоминает число 13 ...? –

+1

Где твое подразделение на 13? Или ваш modulo 13? –

+2

Вы читали подсказку? Это очень важно. Перед выдачей вам потребуется инструкция 'if' с этим тестом. – paddy

ответ

3

В вашей программе отсутствует проверка числа, не делящегося на 13 ".

Помните, что когда вы пишете оператор if, все, что находится в соответствующем блоке, будет выполняться только в том случае, если выражение между скобками истинно. Так внутри вашего цикла в то время, напишите if заявление, и только распечатать число, если оно не делится на 13. Как это:

while (x <= 1000) // notice the <= operator 
{ 
    if (/*change this multiline comment for an expression 
     that checks wheter x is not divisible by 13*/) { 
     System.out.println(x); 
    } 
    x++; // Increment x whether it is divisible or not. 
} 

Я хотел бы написать фактическое выражение, но тогда я был бы отвечая на ваши домашние задания для вас. Я просто хочу, чтобы вы поняли логику этого, поэтому вы можете сами ответить на свою домашнюю работу и усвоить знания. Может быть, это полезно для вас.

-2

общественного класса Ch4_Lab_5 { государственной статической силы основных (String [] арг) { INT х = 1;

while (x < 1000) 
    { 
     System.out.println(x); 
     System.out.println(x+1); 
     System.out.println(x+2); 
     System.out.println(x+3); 
     System.out.println(x+4); 
     System.out.println(x+5); 
     System.out.println(x+6); 
     System.out.println(x+7); 
     System.out.println(x+8); 
     System.out.println(x+9); 
     System.out.println(x+10); 
     System.out.println(x+11); 
     x+=13; 
    } 
} 

}

Но есть еще некоторые настройки, чтобы быть сделано, чтобы сделать эту остановку на номер 1000.

+0

Я не уверен, на что я смотрю ... –

+1

В вашем ответе две вещи неправильны: 1) вы не останавливаетесь на 1000. 2) Объяснение цикла, раскручивающееся для новичков вроде этого, является своего рода жестоким способом смотреть вниз на людей. – Renan

+0

Программа, которая печатает числа ниже 1000, которые не делятся на 13. –