記録

おつりアルゴリズム番外編。

おつりアルゴリズムのアクセスがまぁまぁ好評なので番外編を記載します。硬貨や紙幣の制限がない場合、単なるこれだけのアルゴリズムで動作させることが可能です。尚、自動販売機などは硬貨の枚数なども計算しておつりを算出しているだろうと思います。因みにこのアルゴリズムに硬貨の枚数などのアルゴリズムを追加することにより比較的に簡単に導入できるかと思います。

デモ21としてリンクを載せときます、実際に使用してみて勘どころを掴んでください。なお、このコードはHTMLとJSで動させています。PHPなどは使用していません。ジャバスクリプト(JavaScript)で結構いろいろなことを処理することが可能だと感じますね。WEBでなにか勉強しようと考えている場合、JS(ジャバスクリプト)は必須であり、ブラウザさえあれば普通に動くのでお勧めな言語かなと思います。

ソースコードは下記になります。https://zip358.com/tool/demo21/

document.getElementById("money").addEventListener("input",function(){
	var money = document.getElementById("money").value;
	var change = {
		calc1:{yen:10000,change:0,str1:"紙幣",str2:"枚"},
		calc2:{yen:5000,change:0,str1:"紙幣",str2:"枚"},
		// calc33:{yen:2000,change:0,str:"紙幣",str2:"枚"},
		calc3:{yen:1000,change:0,str1:"紙幣",str2:"枚"},
		calc4:{yen:500,change:0,str1:"硬貨",str2:"個"},
		calc5:{yen:100,change:0,str1:"硬貨",str2:"個"},
		calc6:{yen:50,change:0,str1:"硬貨",str2:"個"},
		calc7:{yen:10,change:0,str1:"硬貨",str2:"個"},
		calc8:{yen:5,change:0,str1:"硬貨",str2:"個"},
		calc9:{yen:1,change:0,str1:"硬貨",str2:"個"}
	};
	money = money.replace(/[,|,]/g,"");
	if(money.match(/[0-9]{1,}/g)){
		for (const key in change) {
			if (change.hasOwnProperty(key)) {
				const obj = change[key];
				change[key].change  = Math.floor(money / obj.yen);
				money = money % obj.yen;
			}
		}
		var anser = function() {
			var str = "";
			for (const key in change) {
				if (change.hasOwnProperty(key)) {
					const obj = change[key];
					if(obj.change){
						str+= obj.yen + "円、" + obj.str1 + "が" + obj.change + obj.str2 + "<br>";
					}
				}
			}
			return str;
		};
		document.getElementById("change_print").innerHTML = anser();
	}else{
		document.getElementById("change_print").innerHTML = "入力が不適切です!";
	}
});

はてな?お金持ち?貧乏?まじめ?怠惰?前のページ

死守せよ、だが軽やかに手放せ次のページ

関連記事

  1. 記録

    一部のサービスのアクセス数が極端に増えたことで思うこと。

    おはようございます。今日は3時に起床してみました。たぶん二度寝するこ…

  2. 記録

    映画、とんびを観てきましたよ。#とんび #映画

    おはよう御座います。昨日は春を通り越して初夏じゃないかなって思うぐら…

  3. purple leaf

    記録

    何気なく書いていた事が結構な確率で当たる。#未来予知 #高的中か?

    おはようございます、コロナが収まりそうなのに戦争はまだ収まりそうにな…

  4. 記録

    5月の雨、6月の晴れ

    東京に住んでいた頃、雨の電車通勤がとても嫌でした。高知で住んでいると…

  5. 記録

    「身の程」は、社会的にわきまえておくべき、自分の範囲のこと。

    「身の程知らず」は基本的にダメかも。ひとがやったことを真似して同じよ…

  6. 記録

    動画を無音声に変換するバッチ

    こらからプログラムしている所のVlogを撮ろうと月曜日に、WEB…

2020年7月
 12345
6789101112
13141516171819
20212223242526
2728293031  

カテゴリー

アーカイブ

PAGE TOP