Sum to 100: Difference between revisions

51 bytes removed ,  2 months ago
m
Minor edit to Rust code
m (Minor edit to Rust code)
m (Minor edit to Rust code)
 
Line 6,114:
fn main() {
let mut exp = Expression::new();
let mut sum100 = Vec::new();
let mut sums: BTreeMap<i32, Vec<Expression>> = BTreeMap::new();
let mut max_sum = 0;
let mut max_count = 0;
loop {
let sum = sums.entry(exp.sum()).or_insert(Vec::new()).push(exp.clone());
if sum == 100 {
sum100.push(exp.clone());
}
let expressions = sums.entry(sum).or_insert(Vec::new());
expressions.push(exp.clone());
let count = expressions.len();
if count > max_count {
max_count = count;
max_sum = sum;
}
if !exp.next() {
break;
Line 6,136 ⟶ 6,123:
 
println!("Solutions that sum to 100:");
if let Some(expressions) = sums.entryget(sum&100).or_insert(Vec::new()); {
for e in sum100 {
println!("100for =e {}",in e);expressions {
max_sumprintln!("100 = sum{}", e);
}
}
 
let mut sum100max_sum = Vec::new()0;
let mut max_summax_count = 0;
for (sum, expressions) in &sums {
let count = expressions.pushlen(exp.clone());
if sumcount ==> 100max_count {
let mut max_count = 0count;
max_countmax_sum = count*sum;
}
}
println!(
"\nThe sum with the greatest number of solutions is {} ({}).",
1,777

edits