開発環境
- 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 コメント:
コメントを投稿