パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

JavaScriptで2次元配列を使う

2020-01-21 | プログラムをマスター計画2020
まとめから
 
2次元配列
 
(1) 定義
 
arr=[];
 
(上のソース間詰まってますがこんなイメージ)
arr=[ ];

 

 
(2) 追加
 
arr.push("abcdefg");
arr.push("hijklmn");
 
 
(3) 列表示
 
print(arr[0]);
 
 
(4) x,y取得
 
print(arr[y][x]);
 
 
(5) 変更(列を文字列にした場合 スライス利用)
 
5,1を"z"にする
att[1]=att[1].slice(0,5)+"z"+att[1].slice(5+1)
 
 
(6) 変更(1つずつ設定してある場合)
 
arr=[]
arr.push(["a","b","c","d","e","f","g"]);
arr.push(["h","i","j","k","l","m","n"]);
//5,1を"z"にする
arr[1][5]="z"
 
 
<その他>
 
(1) キャラクターコード65の文字(A)
 
String.fromCharCode(65)
 
 
(2) 文字列の繰り返し("1111111111")
 
"1".repeat(10)
 
 
(3) for(i=0;i<5;i++)などにカンマ区切りで中身を入れられる謎技(カンマ演算子)がある
 
for (total=0, i=1; i<=10; total+=i, i++);
print(i, total);
実行後
11 55
(変数が残ってしまい他の言語と違ったりするので注意が必要)
 
 
(以下はこの後のプログラムには関係なし)
(4) 2進数の文字列を10進数に変換
 
print(parseInt("1111", 2));
 
 
(5) 文字列を数値化するときに+でもできる
 
a = +"5";
a = +readline();
 
 
(6) 少数の切り捨てに~~
 
print(~~5.5);
 
 
(7) split`,`でsplit(",")よりちょっと短くできる`はバッククォート
 
[a,b]="5,6".split`,`
print(+a * +b)
 
--------------------------
 
JavaScriptのコードコンテストの参加者のソースから学んでいます。
 
 
その問題で最後に解いた8問目(問題はランダムで参加時刻によって変わります)
 
正方形を左上から右、下、左、上と繰り返し、渦巻きに読み取る問題
4の時
java
asts 
l !!c
tpir
 
だと
"javascriptlast!!"を答えます。
 
正方形のサイズは1から25まで

その時は1から4までハードコード orz

 

100点はその問題の参加者12名の中で2名いましたが、ソースの紹介はありませんでした。

ということで作ってみました。

アルゴリズムを思いつくまでに時間かかっています。

上下左右のしきい値にsy ey sx exを設定して、

しきい値で折れ曲がって、しきい値(境目となる値)を設定するプログラムです。

 

螺旋感が全くありません。

 

そこで各アルファベットを10個ずつ並べたものを逆に16x16の正方形に螺旋にはめてみたプログラムです。

 

 

 

 

そういえば同じようなもの「ウラムの螺旋」作ったはずと、

過去の記事をみていると半年ほど前に作っていました。

https://blog.goo.ne.jp/field_light/e/74338c28326d915c0f1a4246cc178cb6

ここの作成方法とは全く逆でした。(中央から作っていく)

 

半年前のBASICのソースさっぱりわからない。


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。