Coin de Gamma
2 years ago
1 changed files with 130 additions and 0 deletions
@ -0,0 +1,130 @@
|
||||
fn less_20(n: u32) -> String { |
||||
if n == 1 { |
||||
return String::from("one"); |
||||
} |
||||
if n == 2 { |
||||
return String::from("two"); |
||||
} |
||||
if n == 3 { |
||||
return String::from("three"); |
||||
} |
||||
if n == 4 { |
||||
return String::from("four"); |
||||
} |
||||
if n == 5 { |
||||
return String::from("five"); |
||||
} |
||||
if n == 6 { |
||||
return String::from("six"); |
||||
} |
||||
if n == 7 { |
||||
return String::from("seven"); |
||||
} |
||||
if n == 8 { |
||||
return String::from("eight"); |
||||
} |
||||
if n == 9 { |
||||
return String::from("nine"); |
||||
} |
||||
if n == 10 { |
||||
return "ten".to_string(); |
||||
} |
||||
if n == 11 { |
||||
return "eleven".to_string(); |
||||
} |
||||
if n == 12 { |
||||
return "twelve".to_string(); |
||||
} |
||||
if n == 13 { |
||||
return "thirteen".to_string(); |
||||
} |
||||
if n == 14 { |
||||
return "fourteen".to_string(); |
||||
} |
||||
if n == 15 { |
||||
return "fifteen".to_string(); |
||||
} |
||||
if n == 16 { |
||||
return "sixteen".to_string(); |
||||
} |
||||
if n == 17 { |
||||
return "seventeen".to_string(); |
||||
} |
||||
if n == 18 { |
||||
return "eighteen".to_string(); |
||||
} |
||||
if n == 19 { |
||||
return "nineteen".to_string(); |
||||
} |
||||
return String::from("idontknow"); |
||||
} |
||||
|
||||
fn tens_from_20(n: u32) -> String { |
||||
if n == 20 { |
||||
return "twenty".to_string(); |
||||
} |
||||
if n == 30 { |
||||
return "thirty".to_string(); |
||||
} |
||||
if n == 40 { |
||||
return "forty".to_string(); |
||||
} |
||||
if n == 50 { |
||||
return "fifty".to_string(); |
||||
} |
||||
if n == 60 { |
||||
return "sixty".to_string(); |
||||
} |
||||
if n == 70 { |
||||
return "seventy".to_string(); |
||||
} |
||||
if n == 80 { |
||||
return "eighty".to_string(); |
||||
} |
||||
if n == 90 { |
||||
return "ninety".to_string(); |
||||
} |
||||
return "what".to_string(); |
||||
} |
||||
|
||||
fn to_99(n: u32) -> String { |
||||
if n < 20 { |
||||
return less_20(n); |
||||
} |
||||
if n % 10 == 0 { |
||||
return tens_from_20(n); |
||||
} |
||||
let l = (n / 10) * 10; |
||||
let r = n % 10; |
||||
let mut res = tens_from_20(l); |
||||
res.push_str(&less_20(r)); |
||||
return res; |
||||
} |
||||
|
||||
fn to_999(n: u32) -> String { |
||||
if n < 100 { |
||||
return to_99(n); |
||||
} |
||||
let ll = n / 100; |
||||
let rr = n % 100; |
||||
let mut res = less_20(ll); |
||||
res.push_str("hundred"); |
||||
if rr != 0 { |
||||
res.push_str("and"); |
||||
res.push_str(&to_99(rr)); |
||||
} |
||||
return res; |
||||
} |
||||
|
||||
|
||||
fn main() { |
||||
let mut res = 0; |
||||
for i in 1..=999 { |
||||
let lll = to_999(i); |
||||
//println!("{}", lll);
|
||||
res += lll.len(); |
||||
} |
||||
res += "onethousand".to_string().len(); |
||||
println!("{}", res); |
||||
} |
||||
|
Loading…
Reference in new issue