fn decimal_to_base12(mut decimal_number: u32) -> String {
// Converts a decimal number to base-12 and returns it as a string.
if decimal_number == 0 {
return "0".to_string();
}
let digits = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B']; // Base-12 digits (A = 10, B = 11)
let mut base12 = Vec::new();
while decimal_number > 0 {
let remainder = (decimal_number % 12) as usize;
base12.push(digits[remainder]);
decimal_number /= 12;
}
// Reverse to get the correct order
base12.iter().rev().collect()
}
fn main() {
let decimal_number = 100;
let base12_number = decimal_to_base12(decimal_number);
println!("Base-12 representation: {}", base12_number);
let decimal_number = 19621;
let base12_number = decimal_to_base12(decimal_number);
println!("Base-12 representation: {}", base12_number);
}
/*
run:
Base-12 representation: 84
Base-12 representation: B431
*/