質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

9回答

6862閲覧

JavaScriptで渦巻き上に数字を並べたい

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

6クリップ

投稿2015/11/23 13:01

JavaScriptでfor文を使って以下のように数字を渦巻き状に並べたいのですがどのようにすればいいのでしょうか?

01,02,03,04,05,
16,17,18,19,06,
15,24,25,20,07,
14,23,22,21,08,
13,12,11,10,09,

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

izkn

2015/12/04 06:02

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
guest

回答9

0

プログラムコードにはおとせていませんが、考え方を述べます。

質問にある渦巻きとは逆に、真ん中から 1, 2 .. と外に巻いていくものを考えます。

逆巻の配列 質問文の配列 [25] 24 23 22 21 1 2 3 4 5 10 [9] 8 7 20 16 17 18 19 6 11 2 [1] 6 19 15 24 25 20 7 12 3 4 5 18 14 23 22 21 8 13 14 15 16 17 13 12 11 10 9

この 2 つを重ねると、すべてのセルの値は 26 (= 55 + 1) になります。
左側の中央から左上への体格線上には 1
1 (=1) , 33 (= 9) , 55 (=25), ,,, が並びます。

四角を次のように分解して考えます

1 9 8 7 2 6 3 4 5 25 24 23 22 21 10 20 11 19 12 18 13 14 15 16 17

これらの 配列の [i][j] の位置の値は比較的簡単に値を埋めることができそうです。
これが求まれば、質問文にある配列の [i][j] の値は n * n + 1 から引くことで求まります。

投稿2015/11/25 15:39

編集2015/11/28 08:28
katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

一辺ごとにループまわして書き込んでいくシンプル且つゴリ押した方法。
1つのループについて、一辺サイズ-1ずつ処理することで次のループでy、xの値を無駄なく使える。
ただしその性質上、中央★には辿りつけないため最後はif文で代入している。
処理イメージ

JavaScript

1function uzu(num){ 2 3 var result = new Array(num); 4 for(var i = result.length; i--;){result[i] = new Array(num);}; 5 6 var elmCount = num * num; 7 var x = y = 0; 8 var i = 1; 9 var min_height = min_width = 0; 10 var max_height = max_width = num; 11 12 while(true){ 13 14 while( x < max_width - 1 ){ result[y][x++] = i++; } 15 while( y < max_height - 1 ){ result[y++][x] = i++; } 16 while( x > min_width ){ result[y][x--] = i++; } 17 while( y > min_height + 1 ){ result[y--][x] = i++; } 18 19 if(i == elmCount){ 20 result[y][x] = i; 21 break; 22 } 23 24 max_width--, max_height--, min_width++, min_height++; 25 } 26 27 return result; 28} 29

投稿2015/11/24 17:10

nage

総合スコア144

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんばんは。
JavaScriptは不慣れですが、書いてみました。
2次元配列相当に値を埋めていきますが、一辺の大きさを+1してブロック(赤枠)を小さくしながら進めています。

大きさを+1する事で、右下の角が最小値で、その上が最大値になる規則性を成立させてます。

イメージ説明

JavaScript

1var S = 1; // 起点の値(左上) 2var N = 6; // 正方行列の一辺の大きさ 3var MTX = []; // 結果格用 4var small; // ブロック内の最小値 5var size; // 処理対象のブロックの大きさ 6var row, col; // 行、列 7var ptr; // ブロックの起点を指す(配列の添字) 8var maxlen; // 表示する値の最大長さ 9var strval; // 配列から取り出した値(文字列) 10var vallen; // 配列から取り出した値の長さ 11var str; // 結果表示 12 13// 結果格納用の配列準備 14for(i=0; i<N+1; i++) MTX[i] = []; 15 16 17// 渦巻き状の値が入った配列を作成 18small = S - 2 * N - 1; // 最初のブロックの最小値を求める 19size = N + 1; // 最初のブロックサイズ 20ptr = 0; 21while (size > 0){ 22 for(col=0; col<size; col++){ // 上の行を埋める 23 MTX[ptr][ptr+col] = small + 2 * (size - 1) + col; 24 } 25 for(row=1; row<size; row++){ 26 if (row < size-1){ // 中の行を埋める 27 MTX[ptr+row][ptr] = MTX[ptr+row-1][ptr] -1; 28 MTX[ptr+row][ptr+size-1] = MTX[ptr+row-1][ptr+size-1] + 1; 29 } 30 else{ // 下の行を埋める 31 for(col=0; col<size; col++){ 32 MTX[ptr+row][ptr+col] = small + size - col - 1; 33 } 34 } 35 } 36 37 // 次のブロックの最小値を計算 38 small+=Math.pow(size, 2) - (size <= 2 ? 0 : Math.pow(size-2, 2)); 39 40 size -= 2; 41 ptr++; 42} 43 44// 表示用 45maxlen = (N * N + S).toString().length; 46str = ""; 47for(row=0; row<N; row++){ 48 for(col=1; col<N+1; col++){ 49 strval = MTX[row][col].toString(); 50 while (maxlen > strval.length) strval = "0" + strval; 51 str = str + strval + ","; 52 } 53 str += "\n"; 54} 55console.log(str);

投稿2015/11/24 12:08

編集2015/11/24 12:58
sgr-2

総合スコア294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

パズル的で面白いですね。
スマートな方法が思いつかなかったので、べたべたです.....。
リファクタリングは必要ですが、とりあえず動作します。

javascript

1var uzu = function(r){ 2 var srt = []; 3 var w = r; 4 var i = 0; 5 var wide = []; 6 while(w > 0){ 7 wide.push(w); 8 i++; 9 w-=i%2; 10 } 11 var posm = [1,r,-1,-r]; 12 var pos = 0; 13 var x = 0; 14 for(i=0;i<wide.length;i++){ 15 for(cnt=0;cnt<wide[i];cnt++){ 16 x++; 17 pos+=posm[i%4]; 18 srt[pos-1] = x; 19 } 20 } 21 return srt; 22} 23 24var r = 7; //ここに一辺の長さを設定 25var len = (r*r).toString().length; 26var arr = uzu(r); 27var str = ""; 28for(var i = 0; i < arr.length; i++){ 29 n = arr[i].toString(); 30 while(n.length < len)n = "0"+n; 31 str += n+","; 32 if((i+1)%r == 0 && i > 0)str+="\n"; 33} 34console.log(str); 35// 01,02,03,04,05,06,07, 36// 24,25,26,27,28,29,08, 37// 23,40,41,42,43,30,09, 38// 22,39,48,49,44,31,10, 39// 21,38,47,46,45,32,11, 40// 20,37,36,35,34,33,12, 41// 19,18,17,16,15,14,13,

uzuで渦巻き状に並べなおした配列を作成して、それを1行に1辺の個数分ずつ出力しています。
渦は例えば25の配置の場合、右に5、下に4、左に4、上に3....
5,4,4,3,3,2,2,1,1 のように数が減っていきます。
49の場合は、7,6,6,5,5,4,4,3,3,2,2,1,1 です。
この様な法則で0になるまで減り続けるので、wideにこの配列をつくって、右下左上右...と並べていけば、求める配列を得る事が出きます。
....が、もっと数学的な方法ですっきり作る事ができそうな気がします。他の方の回答が楽しみです。

投稿2015/11/23 15:55

編集2015/11/23 17:24
hirohiro

総合スコア2068

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Lhankor_Mhy さんの再帰版をすこし変形させてみました。

coffeescript

1show = (ary) -> 2 for row in ary 3 s = '' 4 for sel in row 5 s += " " if sel < 10 6 s += " " + sel 7 console.log s 8 console.log "" 9 10spiral = (n, start = 1) -> 11 return [[start]] if n == 1 12 13 dim = 2 * n - 1 14 [].concat [[start...(start + dim)]], 15 spiral(n - 1, start + 4 * (dim - 1)).map((elm, i) -> 16 [].concat start + 4 * (dim - 1) - 1 - i, elm, start + dim + i), 17 [[(start + 3 * (dim - 1))...(start + 2 * (dim - 1) - 1)]] 18 19for i in [1..5] 20 show spiral(i)

実行例:

1 1 2 3 8 9 4 7 6 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 1 2 3 4 5 6 7 24 25 26 27 28 29 8 23 40 41 42 43 30 9 22 39 48 49 44 31 10 21 38 47 46 45 32 11 20 37 36 35 34 33 12 19 18 17 16 15 14 13 1 2 3 4 5 6 7 8 9 32 33 34 35 36 37 38 39 10 31 56 57 58 59 60 61 40 11 30 55 72 73 74 75 62 41 12 29 54 71 80 81 76 63 42 13 28 53 70 79 78 77 64 43 14 27 52 69 68 67 66 65 44 15 26 51 50 49 48 47 46 45 16 25 24 23 22 21 20 19 18 17

投稿2015/11/28 11:38

編集2015/11/28 11:46
katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

なんでみんな再帰でやらないんだろう?

……と思って書いてみたらえらいことになりましたよ、とほほ。

javascript

1function spiral(sizeX, sizeY, start){ 2 var x = sizeX - 1; 3 var y = sizeY - 1; 4 start = start == undefined ? 1 : start; 5 if (sizeY == 0) return []; 6 if (sizeX == 0) return Array.apply([], {length: sizeY}).map(function(e, i){return []}); 7 if (sizeY == 1) return [range( start, start + x )]; 8 if (sizeX == 1) return Array.apply([], {length: sizeY}).map(function(e, i){return [i + start]}); 9 return [].concat( 10 [range( start, start + x )], 11 spiral( x-1, y-1, start + x + y + x + y ).map(function(elm, i){ 12 return [].concat( start + x + y + x + y - i - 1, elm, start + x + i + 1) 13 }), 14 [range( start + x + y + x, start + x + y )] 15 ); 16 17 18 function range(start, end){ 19 if (start < end) return rangeInner(start, end) 20 else return rangeInner(end, start).reverse(); 21 22 23 function rangeInner(start, end){ 24 return Array.apply([], {length: end - start + 1}).map(function(e, i){return i + start}) 25 } 26 } 27} 28 29 30 31//出力 32spiral(10,10).reduce(function(sum, v){ 33 return sum+v+'\n'; 34},'');

投稿2015/11/28 07:30

Lhankor_Mhy

総合スコア35865

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

katoy

2015/11/28 09:23

> なんでみんな再帰でやらないんだろう? おお、そうですよね! Lhankor_Mhy さんの jsvascript を js2coffee で coffeescrpt に変更してから 出力を 1..5 でループさせてみました。 ------------ spiral = (sizeX, sizeY = sizeX, start = 1) -> x = sizeX - 1 y = sizeY - 1 range = (start, end) -> rangeInner = (start, end) -> Array.apply([], length: end - start + 1).map (e, i) -> i + start if start < end rangeInner start, end else rangeInner(end, start).reverse() if sizeY == 0 return [] if sizeX == 0 return Array.apply([], length: sizeY).map((e, i) -> []) if sizeY == 1 return [ range(start, start + x) ] if sizeX == 1 return Array.apply([], length: sizeY).map((e, i) -> [ i + start ]) [].concat [ range(start, start + x) ], spiral(x - 1, y - 1, start + x + y + x + y).map((elm, i) -> [].concat start + x + y + x + y - i - 1, elm, start + x + i + 1 ), [ range(start + x + y + x, start + x + y) ] for i in [1..5] console.log spiral(i).reduce(((str, v) -> str + v + '\n'), '') -------- 実行結果 $ coffee spiral.coffee 1 1,2 4,3 1,2,3 8,9,4 7,6,5 1,2,3,4 12,13,14,5 11,16,15,6 10,9,8,7 1,2,3,4,5 16,17,18,19,6 15,24,25,20,7 14,23,22,21,8 13,12,11,10,9
katoy

2015/11/28 09:26

↑でのコードですが、コメント欄でのプログラムコードは行頭のSPACE が削られてしまうようです。 coffeescript や python にとっては致命的です orz ....
Lhankor_Mhy

2015/11/28 10:04

おお、coffeescriptってそんなのもできるんですね。 配列内包表記があるならもっとスマートに書けそう。
guest

0

面白そうなので作ってみました
なんの工夫もなくシンプルに、なるべくfor文を使って、左上起点で渦巻きに数値を埋めていってます
列数を 100 とか指定すると、中心のmax値を見つけるのに「ウォーリーを探せ」みたいな感じになりますね

html

1<input type="text" id="num" value="" placeholder="列数を入力 1~"> 2<input type="button" onclick="uzu()" value="uzumaki"> 3<div id ="uzumaki"> 4</div> 5

javascript

1function uzu(){ 2 3 var num = document.getElementById("num").value; // 列数 4 5 var i,j; 6 7 var tbl = new Array(num); 8 9 // マトリクスの準備(中身は0で初期化) 10 for( i=0; i<num; i++ ){ 11 tbl[i] = new Array(num); 12 for( j=0; j<num; j++ ){ 13 tbl[i][j] = 0; 14 } 15 } 16 17 var a = 0; // マトリクス行 18 var b = 0; // マトリクス列 19 var mv = 1; // 移動方向 1:右, 2:下, 3:左, 4:上 20 var max = num * num; // 最終値 21 var number; // 埋める値(1~) 22 23 // マトリクスの作成 24 // 最終値を超えるまでマトリクスに値を埋めていく 25 for( number=1; number<=max; number++ ){ 26 27 // 値を埋める 28 tbl[a][b] = number; 29 30 // 右方向 31 if( mv == 1){ 32 // マトリクスから飛び出るか次のマスが 0 以外なら 33 if( b+1 >= num || tbl[a][b+1] > 0 ){ 34 // 下へ方向転換 35 a += 1; 36 mv = 2; 37 } 38 else{ 39 // マス移動 40 b += 1; 41 } 42 } 43 // 下方向 44 else if( mv == 2 ){ 45 // マトリクスから飛び出るか次のマスが 0 以外なら 46 if( a+1 >= num || tbl[a+1][b] > 0 ){ 47 // 左へ方向転換 48 b -= 1; 49 mv = 3; 50 } 51 else{ 52 // マス移動 53 a += 1; 54 } 55 } 56 // 左方向 57 else if( mv == 3 ){ 58 // マトリクスから飛び出るか次のマスが 0 以外なら 59 if( b-1 < 0 || tbl[a][b-1] > 0 ){ 60 // 上へ方向転換 61 a -= 1; 62 mv = 4; 63 } 64 else{ 65 // マス移動 66 b -= 1; 67 } 68 } 69 // 上方向 70 else{ 71 // マトリクスから飛び出るか次のマスが 0 以外なら 72 if( a-1 < 0 || tbl[a-1][b] > 0 ){ 73 // 右へ方向転換 74 b += 1; 75 mv = 1; 76 } 77 else{ 78 // マス移動 79 a -= 1; 80 } 81 } 82 } 83 84 // 結果の出力 85 var str = ""; 86 var k,tmp; 87 var maxketa = String(max).length; 88 for( i=0; i<num; i++ ){ 89 for( j=0; j<num; j++ ){ 90 // 桁揃え 91 tmp = maxketa - String(tbl[i][j]).length; 92 for( k=0; k<tmp; k++ ) 93 str += "0"; 94 str += tbl[i][j] + ","; 95 } 96 // 1行分作成したら改行 97 str += "<br>"; 98 } 99 100 document.getElementById("uzumaki").innerHTML = str; 101 102}

投稿2015/11/24 10:27

takito

総合スコア3111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

さらにもう1つの方法を投稿します。
これは、正方形のセルのうえをタートルグラフックで数字をおきながら移動していくようにしたものです。

javascript

1show = (ary) -> 2 for row in ary 3 s = '' 4 for sel in row 5 s += " " if sel < 10 6 s += " " + sel 7 console.log s 8 console.log "" 9 10# right, down, left, up 方向への移動量 11directions = [ 12 {dx: 1, dy: 0}, {dx: 0, dy: 1}, {dx: -1, dy: 0}, {dx: 0, dy: -1} 13] 14 15find_next_pos_dir = (pos_dir, ary) -> 16 c = (ary.length - 1) / 2 # 中心の位置 17 {x, y, dir} = pos_dir 18 {dx, dy} = directions[dir] 19 # 壁にぶつかったか、既に通過したセルなら、進行方向を変える。 20 if (Math.abs(x + dx - c) > c) or (Math.abs(y + dy - c) > c) or (ary[y + dy][x + dx] != 0) 21 dir = (dir + 1) % 4 22 {dx, dy} = directions[dir] 23 {x: x + dx, y: y + dy, dir: dir} 24 25gen_square3 = (n) -> 26 return [[1]] if n == 1 27 28 # 0 で埋めた2次元配列を作る 29 dim = 2 * n - 1 30 ary = [] 31 ary[i] = (0 for [1..dim]) for i in [0...dim] 32 33 ary[0][0] = 1 34 pos_dir = {x: 0, y: 0, dir: 0} # スタートの位置と移動方向 35 for seq in [2.. dim * dim] 36 pos_dir = find_next_pos_dir(pos_dir, ary) 37 ary[pos_dir.y][pos_dir.x] = seq 38 ary 39 40for n in [1, 2, 3 ,4, 5] 41 show gen_square3(n)

実行結果

1 1 2 3 8 9 4 7 6 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 1 2 3 4 5 6 7 24 25 26 27 28 29 8 23 40 41 42 43 30 9 22 39 48 49 44 31 10 21 38 47 46 45 32 11 20 37 36 35 34 33 12 19 18 17 16 15 14 13 1 2 3 4 5 6 7 8 9 32 33 34 35 36 37 38 39 10 31 56 57 58 59 60 61 40 11 30 55 72 73 74 75 62 41 12 29 54 71 80 81 76 63 42 13 28 53 70 79 78 77 64 43 14 27 52 69 68 67 66 65 44 15 26 51 50 49 48 47 46 45 16 25 24 23 22 21 20 19 18 17

投稿2015/11/27 13:41

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

考え方だけを回答してましたが、コードにも落としました。
2通りのコードを書きました。
1 四角の枠毎に配列のセルを埋めていく。
2 配列の [y][x] の位置の値を得る関数を作成し 単純n2重ループを回してセルを埋めていく。

coffeescript

1show = (ary) -> 2 for row in ary 3 s = '' 4 for sel in row 5 s += (if sel < 10 then ' ' else ' ') + sel 6 console.log s 7 console.log '' 8 9# 四角を枠に分割して埋めていく 10gen_square = (n) -> 11 # 0 で埋めた2次元配列を作る 12 dim = 2 * n - 1 13 ary = [] 14 ary[i] = (0 for [1..dim]) for i in [0...dim] 15 16 gr = dim * dim + 1 17 ary[n - 1][n - 1] = gr - 1 18 for i in [1..n] 19 k0 = n - i 20 k1 = n + i - 2 21 w = 2 * i - 1 22 base = w * w 23 for j in [0...(w - 1)] 24 ary[k0][k0 + j] = gr - (base - j) # 上枠 25 ary[k0 + j][k1] = gr - (base - w - j + 1) # 右枠 26 ary[k1][k1 - j] = gr - (base - 2 * (w - 1) - j) # 下枠 27 ary[k1 - j][k0] = gr - (base - 3 * (w - 1) - j) # 左枠 28 ary 29 30for n in [1..5] 31 show gen_square(n)

実行結果

$ coffee 10.coffee 1 1 2 3 8 9 4 7 6 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 1 2 3 4 5 6 7 24 25 26 27 28 29 8 23 40 41 42 43 30 9 22 39 48 49 44 31 10 21 38 47 46 45 32 11 20 37 36 35 34 33 12 19 18 17 16 15 14 13 1 2 3 4 5 6 7 8 9 32 33 34 35 36 37 38 39 10 31 56 57 58 59 60 61 40 11 30 55 72 73 74 75 62 41 12 29 54 71 80 81 76 63 42 13 28 53 70 79 78 77 64 43 14 27 52 69 68 67 66 65 44 15 26 51 50 49 48 47 46 45 16 25 24 23 22 21 20 19 18 17

coffeescript

1show = (ary) -> 2 for row in ary 3 s = '' 4 for sel in row 5 s += (if sel < 10 then ' ' else ' ') + sel 6 console.log s 7 console.log '' 8 9# ary[y][x] の値を求める。 10val = (x, y, n) -> 11 dx = x - (n - 1) 12 dy = y - (n - 1) 13 d = Math.max(Math.abs(dx), Math.abs(dy)) 14 k0 = n - 1 - d 15 k1 = n - 1 + d 16 w = 2 * d + 1 17 base = w * w 18 v = if y == k0 19 v = base - (x - k0) 20 else if x == k1 21 v = base - (w - 1) - (y - k0) 22 else if y == k1 23 v = base - 2 * (w - 1) + (x - k1) 24 else if x == k0 25 v = base - 3 * (w - 1) + (y - k1) 26 else 27 base 28 (2 * n - 1) * (2 * n - 1) + 1 - v 29 30# [y][x] のセル値を得る関数をつかって埋めていく 31gen_square2 = (n) -> 32 # 0 で埋めた2次元配列を作る 33 dim = 2 * n - 1 34 ary = [] 35 ary[i] = (0 for [1..dim]) for i in [0...dim] 36 37 # 値を埋める 38 for y in [0...dim] 39 for x in [0...dim] 40 ary[y][x] = val(x, y, n) 41 ary 42 43for n in [1..5] 44 show gen_square2(n)

実行例

$ coffee 11.coffee 1 1 2 3 8 9 4 7 6 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 1 2 3 4 5 6 7 24 25 26 27 28 29 8 23 40 41 42 43 30 9 22 39 48 49 44 31 10 21 38 47 46 45 32 11 20 37 36 35 34 33 12 19 18 17 16 15 14 13 1 2 3 4 5 6 7 8 9 32 33 34 35 36 37 38 39 10 31 56 57 58 59 60 61 40 11 30 55 72 73 74 75 62 41 12 29 54 71 80 81 76 63 42 13 28 53 70 79 78 77 64 43 14 27 52 69 68 67 66 65 44 15 26 51 50 49 48 47 46 45 16 25 24 23 22 21 20 19 18 17

投稿2015/11/26 16:00

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問