teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2015/11/23 04:39

投稿

yuux01
yuux01

スコア34

answer CHANGED
@@ -77,4 +77,23 @@
77
77
  }
78
78
 
79
79
  console.log( hoge( 4 ) );
80
- ```
80
+ ```
81
+
82
+ ```Javascript
83
+ function hoge( n ) {
84
+ var ary = [];
85
+ var i, j, k, x = 1;
86
+
87
+ for ( i = 0; i < n; i ++ ) ary[ i ] = [];
88
+
89
+ for ( k = 0; k <= ( n - 1 ) * 2; k ++ )
90
+ for ( i = 0, j = k; j >= 0; i ++, j -- )
91
+ if ( i < n && j < n )
92
+ ary[ i ][ j ] = x ++;
93
+
94
+ return ary;
95
+ }
96
+ console.log( hoge( 4 ) );
97
+ ```
98
+
99
+ 最短で4行、これ以上無理

1

追加

2015/11/23 04:39

投稿

yuux01
yuux01

スコア34

answer CHANGED
@@ -40,4 +40,41 @@
40
40
  console.log( hoge( 4 ) );
41
41
  ```
42
42
 
43
- あまりきれいなプログラムじゃありませんが
43
+ あまりきれいなプログラムじゃありませんが
44
+
45
+ ```Javascript
46
+ function hoge ( n ) {
47
+ var ary = [];
48
+ var i;
49
+
50
+ for ( i = 0; i < n; i ++ ) {
51
+ ary[ i ] = [];
52
+ }
53
+
54
+ moga( ary, 0, 0, 1, 1, n );
55
+
56
+ function fuga( ary, i, j, x, y, n ) {
57
+ if ( y < 0 || j < 0 ) return;
58
+
59
+ if ( i < n && j < n ) {
60
+ ary[ i ][ j ] = x;
61
+ }
62
+ if ( i == 0 ) {
63
+ fuga( ary, i + 1, j - 1, x + 1, 0, n );
64
+ x += y;
65
+ if ( j < n - 2 ) {
66
+ y++;
67
+ } else if ( j > n - 2 ) {
68
+ y--;
69
+ }
70
+ fuga( ary, i, j + 1, x, y, n );
71
+ } else {
72
+ fuga( ary, i + 1, j - 1, x + 1, y, n );
73
+ }
74
+ }
75
+
76
+ return ary;
77
+ }
78
+
79
+ console.log( hoge( 4 ) );
80
+ ```