2015-09-13 2 views
3

Я пытаюсь напечатать, как раздвижные окна. Я не мог все исправить. Поэтому, когда скользящий размер окна 1, он должен печатать каждый элемент. Когда скользящее окно равно 2, оно должно печатать два последовательных элемента.Пытается сделать скользящее окно

0 
1 
2 

01 
12 


Пожалуйста, проверьте этот код:

for(int w = 1; w <= a.length; w++) {  
    System.out.println("Window size : " + w); 
    for(int i = 0; i < a.length; i++) { 
     for(int j = i; j < w; j++) { 
      System.out.println(j); 
     } 
     System.out.println(); 
    } 
} 

ответ

2
for(int w = 1; w <= a.length; w++){ 
    System.out.println("Window size : " + w); 
    for(int i = 0; i < a.length - w + 1; i++){ 
     for(int j = i; j < i + w; j++){ 
       System.out.print(a[j]); 
     } 
     System.out.println(); 
    } 
} 
5
  1. Вы не рассчитали нет. окон будет отображаться для определенного размера окна.

  2. Когда вы печатаете значения этого окна, вы задаете условие j меньше, чем w. Он зацикливается на размер окна или раз. Таким образом, для размера окна 1 он будет печатать только один элемент размера окна 1. Для размера окна 2 он напечатает два элемента размера окна 2. Но есть и другие элементы.

Код для шаблона:

public class WindowPattern { 

    public static void main(String[] args) { 
     /* array of elements */ 
     int[] a = {0,1,2,3}; 
     /* window size w */ 
     for(int w = 1; w <= a.length; w++) { 
      System.out.println("Window size : " + w); 
      /* No of elements shown of window size (n) = a.length-w+1 */ 
      for(int i = 0; i < a.length-w+1; i++) { 
       for(int j = i; j < w+i; j++) { 
        System.out.print(a[j]); 
       } 
       System.out.println(); 
      } 
     } 
    } 

} 
+0

Мой upvote но вы можете объяснить ему, что он сделал неправильно ... –

+0

Я обновил ответ и получает очки, где он сделал неправильно. –