関数calcXと関数clacYは、引数inDataを用いて計算を行い、その結果を戻り値とする。 関数calcXをcalcX(1)として呼び出すと、関数calcXの変数numの値が、1→3→7→13と変化し、戻り値は13となった。 関数clacYをcalcY(1)として呼び出すと、関数calcYの変数numが、1→5→13→25と変化し、戻り値は25となった。 プログラムのa、bに入れる適切な組み合わせはどれか。
[プログラム1] 〇整数型:calcX(整数型:inData) 整数型:num, i num ← inData for(iを1から3まで1ずつ増やす) num ← a end for return num |
[プログラム2] 〇整数型:calcY(整数型:inData) 整数型:num, i num ← inData for( a ) num ← b end for return num |
a | b | |
ア | 2×num + i | iを1から7まで3ずつ増やす |
イ | 2×num + i | iを2から6まで2ずつ増やす |
ウ | num + 2×i | iを1から7まで3ずつ増やす |
エ | num + 2×i | iを2から6まで2ずつ増やす |
答え エ
【解説】
関数calcXをcalcX(1)として呼び出すと、関数calcXの変数numの値が、1→3→7→13と変化していることから、変数numの変化量は2→4→6の階差数列になっていることのでaに入るのは“num + 2×i”になります。
関数clacYをcalcY(1)として呼び出すと、関数calcYの変数numが、1→5→13→25と変化し、aに入るのは“num + 2×i”なのと、変数numの変化量が4→8→12なので、for文の変数iの最初の値は2、2番目は4、3番目は6になるので、bに入るのは“iを2から6まで2ずつ増やす”になります。
a | b | |
エ | num + 2×i | iを2から6まで2ずつ増やす |
【キーワード】
・階差数列