added reverse order
This commit is contained in:
parent
c50ec3ab4a
commit
752891ba59
@ -1,9 +1,20 @@
|
||||
use std::{collections::HashMap, io::{self, Write}};
|
||||
use std::{collections::BTreeMap, io::{self, Write}};
|
||||
|
||||
fn main() {
|
||||
let mut article_price: f32 = 0.0;
|
||||
let mut paid_price: f32 = 0.0;
|
||||
let mut monney: HashMap<String, f32> = HashMap::new();
|
||||
let mut money: BTreeMap<String, f32> = BTreeMap::new();
|
||||
money.insert("0.05".to_string(), 0.0);
|
||||
money.insert("0.10".to_string(), 0.0);
|
||||
money.insert("0.25".to_string(), 0.0);
|
||||
money.insert("0.50".to_string(), 0.0);
|
||||
money.insert("1".to_string(), 0.0);
|
||||
money.insert("2".to_string(), 0.0);
|
||||
money.insert("5".to_string(), 0.0);
|
||||
money.insert("10".to_string(), 0.0);
|
||||
money.insert("20".to_string(), 0.0);
|
||||
money.insert("50".to_string(), 0.0);
|
||||
money.insert("100".to_string(), 0.0);
|
||||
|
||||
let mut is_int: bool = false;
|
||||
while !is_int {
|
||||
@ -50,9 +61,25 @@ fn main() {
|
||||
}
|
||||
|
||||
let mut remain = paid_price - article_price;
|
||||
let mut change = remain;
|
||||
|
||||
for (k, v) in money.iter_mut().rev() {
|
||||
let denomination :f32 = k.parse::<f32>().unwrap();
|
||||
let denom_val = (remain / denomination).floor();
|
||||
*v = denom_val;
|
||||
remain -= denom_val * denomination;
|
||||
}
|
||||
if remain >= 0.03 {
|
||||
change += 0.05;
|
||||
}
|
||||
else {
|
||||
change -= remain;
|
||||
}
|
||||
|
||||
println!("You have to give them {:.2} $, So:", change);
|
||||
|
||||
let mut total = 0.0;
|
||||
for (k, v) in monney.iter() {
|
||||
for (k, v) in money.iter().rev() {
|
||||
if *v != 0.0 {
|
||||
println!("{} X {} $", v, k);
|
||||
total += v;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user