2013-12-20 2 views
0

Я пытаюсь разбить 1680 номеров между 40 * 42 разделами.Распечатайте номер x кратным y * z

Так что теперь у меня есть два набора, установите один 0, 1, 2, 3, .... , 39 и установить два является 0, 1, 2, 3, 4, 5, .... , 41

Что означает для каждого числа в первом наборе, например, как для 0 в наборе 1, мне нужно напечатать 0 для набора 1 и 0 ,1, 2, ...., 41 для набора 2, а затем он будет указан для следующего номера в наборе 1, который равен 1, и для этого он будет печатать 1 из набора 1, и теперь он будет печатать 42, 43, ... , 83, а затем следующий номер в наборе 1, который равен 2, он будет печатать 2 из набора 1 и затем распечатает 84, ... , 122, а для последнего номера 39 он распечатает 39 из набора 1, а затем распечатает 1638 , .... , 1679, а затем он остановится, так как наш номер был 1680.

Ниже приведен код, который у меня есть. Во-первых, он выводит 0 из первого набора, затем выводит 0, 1, ... , 41, но после этого он печатает 1 из первого набора, а затем начинает печатать 1, 2, .., 41, что не то, что я хочу, мне нужно распечатать 42, ... , 83 для номера 1 в первом наборе ,

for(int i=0; i< 40; i++) { 
    System.out.println("i = "+i); 
    for(int j=i; j< 42; j++) { 
     System.out.println("j = "+j); 
    } 
} 

Он должен распечатать -

i = 0 
j = 0 
j = 1 
j = 2 

... 
... 
... 

j = 41 
i = 1 
j = 42 
j = 43 
j = 43 

... 
... 
... 
j = 83 

и продолжайте идти, как это до 1679

Короче он должен распечатать каждое число в наборе 1 наряду с кратным 42.

ответ

1

Делают это так:

for(int i=0; i< 40; i++) { 
     System.out.println("i = "+i); 
     for(int j=0; j< 42; j++) { //dont do j=i 
      System.out.println("j = "+(j+i*42)); 
     } 
    } 

я редактировал его, теперь он работает. я протестировал его! Добавьте 42 * i в j.

+0

нет, это все еще не думаю .. см. AJ решение выше .. –

+0

вы предполагаете? но я протестировал его! – kai

+0

Это то, что печатает 'i = 0 j = 41 j = 42' –

1

Попробуйте

for(int i = 0; i<40; i++) 
{ 
    System.out.println("i = " + i); 
    for(int j = i*42; j<(i+1)*42; j++) 
    { 
     System.out.println("j =" + j); 
    } 
} 
0
int count = 0; 

for(int i=0; i< 40; i++) { 
    System.out.println("i = "+i); 
    for(int j=0; j< 42; j++) { 
     System.out.println("j = "+count); 
     count++; 

    } 
} 
+0

Немного объяснений очень поможет в том, как этот фрагмент кода работает для решения/ответа на вопрос. – ishmaelMakitla

0

Попробуйте это ...

for (int i = 0; i < 40; i++) { 
     for (int j = 0; j < 42; j++) { 
      numberCount++; 
      System.out.println("j = " + numberCount); 
     } 
} 

Он печатает

output 
------ 
1 
2 
3 
..... 
1678 
1679 
1680 
0

Это работает, как вы хотели.

int count = 0; 

    for (int i = 0; i < 40; i++) { 
     System.out.println("i = " + i); 
     for (int j = 0; j < 42; j++) { 
      if (j == 0) { 
       System.out.print("j = "); 
      } 
      System.out.print("" + count++); 
      if (j < 41) { 
       System.out.print(","); 
      } 
      if (j == 41) { 
       System.out.print("\n"); 
      } 
     } 
    } 
Смежные вопросы