added reverse order

This commit is contained in:
thatscringebro 2024-10-09 16:25:16 -04:00
parent c50ec3ab4a
commit 752891ba59

View File

@ -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;