Javascript 最少数量的硬币,仅使用条件语句
我只需要使用条件语句。我试图计算归还零钱所需的最少硬币数量。我以为我已经做到了,我的代码适用于大多数场景,但我意识到我遇到了如下错误: 输入: 价格:0.90 薪酬:5 输出: 4 x 1美元 1 x 5美分 2 x 2美分 我发现了一个类似的问题-,但答案不能帮助我在代码中克服这个问题。如果您能告诉我我做错了什么,我将不胜感激Javascript 最少数量的硬币,仅使用条件语句,javascript,if-statement,conditional-statements,Javascript,If Statement,Conditional Statements,我只需要使用条件语句。我试图计算归还零钱所需的最少硬币数量。我以为我已经做到了,我的代码适用于大多数场景,但我意识到我遇到了如下错误: 输入: 价格:0.90 薪酬:5 输出: 4 x 1美元 1 x 5美分 2 x 2美分 我发现了一个类似的问题-,但答案不能帮助我在代码中克服这个问题。如果您能告诉我我做错了什么,我将不胜感激 let price = 0.90; let paid = 5; let change = paid - price; let counter = 0; change =
let price = 0.90;
let paid = 5;
let change = paid - price;
let counter = 0;
change = change*100;
if(change >= 100){
change = change/100;
counter = change;
console.log(counter.toFixed(0) + ' x 1 dollar');
change = (change * 100) % 100;
}
if(change >= 50) {
change = change/50;
counter = change;
console.log(counter.toFixed(0) + ' x 50 cents')
change = (change * 50) % 50;
}
if(change >= 20){
change = change/20;
counter = change;
console.log(counter.toFixed(0) + ' x 20 cents')
change = (change*20) % 20;
}
if(change >= 10){
change = change/10;
counter = change;
console.log(counter.toFixed(0) + ' x 10 cents');
change = (change * 10) % 10;
}
if(change >= 5){
change = change/5;
counter = change;
if(counter != 0){
console.log(Math.floor(counter) + ' x 5 cents');
change = (change * 5) % 5;
}
}
if(change >= 2){
change = change/2;
counter = change;
if(counter != 0){
console.log(Math.floor(counter) + ' x 2 cents');
}
change = (change * 2) % 2;
}
if(change >= 1){
change = change;
counter = change;
if(counter != 0){
console.log(Math.floor(counter) + ' x 1 cent');
}
change = (change * 1) % 1;
}
由于浮点运算()的问题,需要对各部分进行舍入以获得整数值
let price=0.90;
让已付=5;
让变化=数学轮(支付*100)-数学轮(价格*100);
设计数器=0;
日志(100*(已付价格),“vs”,更改);
如果(更改>=100){
计数器=数学楼层(更改/100);
控制台日志(计数器+x1美元);
变化%=100;
}
如果(更改>=50){
计数器=数学楼层(更改/50);
控制台日志(计数器+x50美分)
变化%=50;
}
如果(更改>=20){
计数器=数学楼层(更改/20);
控制台日志(计数器+x20美分)
变化%=20;
}
如果(更改>=10){
计数器=数学楼层(更改/10);
控制台日志(计数器+x10美分);
变化%=10;
}
如果(更改>=5){
计数器=数学楼层(更改/5);
控制台日志(计数器+x5美分);
变化%=5;
}
如果(更改>=2){
计数器=数学楼层(更改/2);
控制台日志(计数器+x2美分);
变化%=2;
}
如果(更改>=1){
控制台日志(数学地板(计数器)+“x1分”);
}
如果更改>=50
:计数器-更改,则会出现输入错误代码>可能应该是计数器=更改代码>错误修复。但这并不是问题的原因。谢谢你的建设性评论!