ドラタンキ

普段はゲームプログラマとしてゲーム作ったり投げたりしている人間です。
自分がエンジニアなのでエンジニアっぽいゲーム作ってます。
飲み会の時にみなでワイワイ遊んでもらえればと~

2020年春にだすボドゲはエンジニア以外でもプレイできるように作る予定

プログラミングカルタ・コード解説 PART1 A01~A05
2019/11/19 0:15
ブログ

A01
引数a=7,b=2の時、返値9
a+b=9なのでreturn a+bが正解

A02
引数a=8,b=3の時、返値10
int[] c = new int[]{2,4,6,8,10,12,14,16,18,20}
return c[a] - c[b];

配列を使った問題
c[a]とc[b]は配列a番目の数値とb番目の数値になる
これは要するに 2a-2bなので8*2 - 3*2 = 10

A03
引数a=8,b=3の時、返値5

これは前置インクリメントと後置インクリメントの違いを説いている問題

前置インクリメントは++a
後置インクリメントはa++

と記載される。

この二つの書き方で処理順が変わってくる

例えばreturn ++a - b;なら
1 a = 8+1;
これが行われた後に
2 return 9 - 3が行われて6が返値となる
一方でreturn a++ -b;なら
1 return 8-3
これの後に
2 a= 8+1;
が行われて返値が5となる

つまり、returnの計算中にaの数値が変わらない後値インクリメントが正解となる

A04
引数a=7,b=3の時、返値5
この場合は前置インクリメントが正解となる

return ++a -b;
1 a = 7+1;
2 return 8 - 3 = 5

A05
引数a=6,b=5の時、返値16
これはfor文の問題
aがbの回数分だけ+1されている
つまりreturn a + b + bとなるので6+5+5 = 16