1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
pub mod cbb { pub fn int_to_bal_ternary(mut n: i128) -> std::string::String { let mut s = format!("{}", ""); while n > 0 { let mut rem = n.rem_euclid(3); n = n / 3; if rem == 2 { rem = -1; n += 1; } if rem == 0 { s = format!("0{}", s); } else { if rem == 1 { s = format!("+{}", s); } else { s = format!("-{}", s); } } } return format!("{:0>4}", s); } }