fork download
  1. /* http://es.stackoverflow.com/q/32069/127
  2.   Recorrer una matriz por la diagonal */
  3.  
  4. import java.util.*;
  5. import java.lang.*;
  6.  
  7. class Ideone
  8. {
  9. public static void main(String args[])
  10. {
  11. //Completar valores en diagonal
  12. final int n = 5;
  13. final int m = 4;
  14. final int cantDiagonales = n + m - 1;
  15.  
  16. int a[][] = new int[m][n];
  17.  
  18. for (int diagonal = 0, num = 0; diagonal < cantDiagonales; diagonal++) {
  19.  
  20. for (int x,
  21. y = Math.min(diagonal,m - 1); //que y no exceda m
  22. y >= 0 && (x = diagonal - y) < n; //que x no exceda n
  23. y--) {
  24.  
  25. a[y][x] = num++;
  26. }
  27.  
  28. }
  29.  
  30. //Imprimir el resultado
  31. for(int y = 0; y < m; y++) {
  32. for(int x = 0; x < n; x++) {
  33. System.out.print(a[y][x] + "\t");
  34. }
  35. System.out.println();
  36. }
  37. }
  38. }
Success #stdin #stdout 0.04s 711168KB
stdin
Standard input is empty
stdout
0	2	5	9	13	
1	4	8	12	16	
3	7	11	15	18	
6	10	14	17	19