ICT教育

大学入学共通テスト「情報」の試作問題について(その2)

投稿日:2022年12月2日 更新日:

前回(大学入学共通テスト「情報」の試作問題について)の続きです。

試作問題『情報Ⅰ』の問3に出てくるコードを JavaScript で書いてみました。

「金額を渡すと、最小交換硬貨枚数が返ってくる」プログラムです。

枚数(金額)」という関数名は、「numOfCoins(kingaku)」に変えてあります。

function numOfCoins(kingaku) {
  const kouka = [1, 5, 10, 50, 100];
  let maisu = 0;
  let nokori = kingaku;

  for (let i=kouka.length-1; i >= 0; i -= 1) {
    maisu += Math.floor(nokori / kouka[i]);
    nokori %= kouka[i];
  }
  return maisu;
}

function main(kingaku) {
  let min_maisu = 100;
  let maisu = 0;
  let shiharai;

  for (let tsuri = 0; tsuri <= 99; tsuri += 1) {
    shiharai = kingaku + tsuri;

    maisu = numOfCoins(shiharai) + numOfCoins(tsuri);
    if (maisu < min_maisu) {
      min_maisu = maisu;
    }
  }
  return min_maisu;
}

console.log(main(46));

これを、例えば Online JavaScript Compiler (Editor) [1]に貼り付けて [Run] ボタンを押すと実行できます。

main(kakaku) という関数に金額を渡すと、「最小交換硬貨枚数」が返ってくるので、それを表示しているだけのプログラムになります。

こうしてみると、「最小交換硬貨枚数」だけ分かってもあまり嬉しくないですね。できれば、「最小交換硬貨枚数」のときの「支払い金額」「支払い金額はどの硬貨が何枚か?」「お釣り金額」「お釣り金額はどの硬貨が何枚か?」も知りたいです。また、入力である「金額」と出力である「最小交換硬貨枚数」のグラフを書いてみるのも面白そうだと思いました。

[1] もちろん、他の「JavaScriptコードを書いて実行できるオンラインサービス」でもよいです。

参考

📂-ICT教育

執筆者:labo


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

ICTリテラシー

間違った情報と偏った情報に対する教育

間違った情報と偏った情報に対する教育について書きました。

no image

「mstdn.jp」を立ち上げた大学院生のインタビュー記事を読みました

以下の記事を読みました。最近話題になっているマストドンのサーバーをたてた大学院生(ぬるかるさん)のインタビュー記事です。非常に興味深い内容になっています。 世界最大の「mstdn.jp」を立ち上げた大 …

ICTリテラシー

大学入学共通テスト「情報」の試作問題について

大学入学共通テスト「情報」の試作問題を見たので、感想を書きました。

no image

パソコンのメモリは多目に積んでおきましょう

もし、今使っているパソコンの動作が遅いと感じている方がいましたら、できるだけ早くメモリを増設することをお勧めします(*1)。今だと 8GBは欲しいところです。 動作が遅いと不快ですし、実際に作業効率が …

no image

ブラウザの自動入力機能が抱えるリスク

主要なWebブラウザには、フォームに入力した文字列を記憶して、それ以後はその文字列を自動でセットしてくれる機能がついています。 この機能は大変便利なのですが、個人情報やパスワードなどがブラウザに記憶さ …