開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- JavaScript (プログラミング言語)
- Learning JavaScript [邦訳](参考書籍)
Q:以下のワンコインの定義を満たす価格をすべて求めよ https://t.co/pYE27g4w7U
— Dan Kogai (@dankogai) 2017年4月19日
ワンコインランチをやってる店に入ったら、会計の時に、「540円です」と言われたので、「あっ、税別なんですか?」と思わず聞いたら、「500円玉と50円玉でお支払い頂くと、お釣りは10円玉でお返ししますので、2枚引く1枚で、ワンコインになります」と返された。一休さんみたいな店だった。
— ちまき (@chi_maki) 2017年4月18日
とりあえず、工夫無しの簡単な総当たりで求めてみた。
コード(Emacs)
HTML5
<button id="run0">run</button> <button id="clear0">clear</button> <pre id="output0"></pre> <script src="sample.js"></script>
JavaScript
let btn0 = document.querySelector('#run0'), btn1 = document.querySelector('#clear0'), pre0 = document.querySelector('#output0'), p = (x) => pre0.textContent += x + '\n'; let coins = [1, 5, 10, 50, 100, 500], result = []; let output = () => { coins.forEach((coin) => { for (let price = 1; price <= 1000; price += 1) { coins.forEach((coin1) => { coins.slice(coins.indexOf(coin1)) .forEach((coin2) => { if ((coin1 + coin2 - price === coin) && coin1 !== coin && coin2 !== coin) { result.push([coin1, coin2, price, coin]); } }); }); } }); result.sort((x, y) => x[2] - y[2]); result.forEach((a) => { p(`${a[2]}円: (${a[0]} + ${a[1]}) - ${a[2]} = ${a[3]}`); }); p(`${result.length}通り`); }; btn0.onclick = output; btn1.onclick = () => pre0.textContent = ''; output();
0 コメント:
コメントを投稿