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);
    }
}