Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 29th, 2012  |  syntax: None  |  size: 1.24 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. public class Spirale {
  2.        
  3.         public static void print(int[][] arr) {
  4.                 for(int i = 0; i < arr.length; i++) {
  5.                         for(int j = 0; j < arr[i].length; j++) {
  6.                                 System.out.print(arr[i][j] + " \t");
  7.                         }
  8.                         System.out.print("\n");
  9.                 }
  10.         }
  11.        
  12.         public static void main(String[] args) {
  13.                 int m = 3;
  14.                 int n = 3;
  15.                 int[][] erg = new int[m][n];
  16.                
  17.                 int upperRow = m;
  18.                 int lowerRow = 0;
  19.                 int upperCol = n;
  20.                 int lowerCol = 0;
  21.                 int counter = 1;
  22.                 while(counter < (m*n)) {
  23.                         int i = lowerRow;
  24.                         int j = lowerCol;
  25.                         if(lowerCol == upperCol-1 || lowerRow == upperRow)      erg[i][j] = counter++;                 
  26.                         for(; j < upperCol-1; j++, counter++) {
  27.                                 erg[i][j] = counter;
  28.                                 if(counter >= (m*n)) break;
  29.                         }
  30.                         upperCol--;
  31.                 //      print(erg);
  32.                 //      System.out.println(counter);
  33.                         for(; i < upperRow-1; i++, counter++) {
  34.                                 erg[i][j] = counter;
  35.                                 if(counter >= (m*n)) break;
  36.                         }
  37.                         upperRow--;
  38.                 //      print(erg);
  39.                 //      System.out.println();
  40.                         for(; j >= lowerCol+1; j--, counter++) {
  41.                                 erg[i][j] = counter;
  42.                                 if(counter >= (m*n)) break;
  43.                         }                      
  44.                         lowerCol++;
  45.                 //      print(erg);
  46.                 //      System.out.println();
  47.                         for(; i >= lowerRow+1; i--, counter++) {
  48.                                 erg[i][j] = counter;
  49.                                 if(counter >= (m*n)) break;
  50.                         }
  51.                         lowerRow++;
  52.                 //      print(erg);
  53.                 //      System.out.println();
  54.                 }
  55.                 print(erg);
  56.         }
  57. }