Four is the number of letters in the ...: Difference between revisions

m
Rust - reformatted with rustfmt
m (Rust - minor edit)
m (Rust - reformatted with rustfmt)
Line 1,637:
<lang rust>struct NumberNames {
cardinal: &'static str,
ordinal: &'static str,
}
 
Line 1,650:
 
const SMALL_NAMES: [NumberNames; 20] = [
NumberNames { cardinal: "zero", ordinal: "zeroth" },
NumberNames { cardinal: "one", ordinalcardinal: "firstzero" },
NumberNames { cardinal: "two", ordinal: "secondzeroth" },
},
NumberNames { cardinal: "three", ordinal: "third" },
NumberNames { cardinal: "four", ordinal: "fourth" },
NumberNames { cardinal: "five", ordinalcardinal: "fifthone" },
NumberNames { cardinal: "six", ordinal: "sixthfirst" },
},
NumberNames { cardinal: "seven", ordinal: "seventh" },
NumberNames { cardinal: "eight", ordinal: "eighth" },
NumberNames { cardinal: "nine", ordinalcardinal: "ninthtwo" },
NumberNames { cardinal: "ten", ordinal: "tenthsecond" },
},
NumberNames { cardinal: "eleven", ordinal: "eleventh" },
NumberNames { cardinal: "twelve", ordinal: "twelfth" },
cardinal: "three",
NumberNames { cardinal: "thirteen", ordinal: "thirteenth" },
NumberNames { cardinal: "fourteen", ordinal: "fourteenththird" },
},
NumberNames { cardinal: "fifteen", ordinal: "fifteenth" },
NumberNames { cardinal: "sixteen", ordinal: "sixteenth" },
cardinal: "four",
NumberNames { cardinal: "seventeen", ordinal: "seventeenth" },
NumberNames { cardinal: "eighteen", ordinal: "eighteenthfourth" },
},
NumberNames { cardinal: "nineteen", ordinal: "nineteenth" }
NumberNames {
cardinal: "five",
ordinal: "fifth",
},
NumberNames {
cardinal: "six",
ordinal: "sixth",
},
NumberNames {
cardinal: "seven",
ordinal: "seventh",
},
NumberNames {
cardinal: "eight",
ordinal: "eighth",
},
NumberNames {
cardinal: "nine",
ordinal: "ninth",
},
NumberNames {
cardinal: "ten",
ordinal: "tenth",
},
NumberNames {
cardinal: "eleven",
ordinal: "eleventh",
},
NumberNames {
cardinal: "twelve",
ordinal: "twelfth",
},
NumberNames {
cardinal: "thirteen",
ordinal: "thirteenth",
},
NumberNames {
cardinal: "fourteen",
ordinal: "fourteenth",
},
NumberNames {
cardinal: "fifteen",
ordinal: "fifteenth",
},
NumberNames {
cardinal: "sixteen",
ordinal: "sixteenth",
},
NumberNames {
cardinal: "seventeen",
ordinal: "seventeenth",
},
NumberNames {
cardinal: "eighteen",
ordinal: "eighteenth",
},
NumberNames {
cardinal: "nineteen",
ordinal: "nineteenth",
},
];
 
const TENS: [NumberNames; 8] = [
NumberNames { cardinal: "twenty", ordinal: "twentieth" },
NumberNames { cardinal: "thirty", ordinalcardinal: "thirtiethtwenty" },
NumberNames { cardinal: "forty", ordinal: "fortiethtwentieth" },
},
NumberNames { cardinal: "fifty", ordinal: "fiftieth" },
NumberNames { cardinal: "sixty", ordinal: "sixtieth" },
NumberNames { cardinal: "seventy", ordinalcardinal: "seventieththirty" },
NumberNames { cardinal: "eighty", ordinal: "eightieththirtieth" },
},
NumberNames { cardinal: "ninety", ordinal: "ninetieth" }
NumberNames {
cardinal: "forty",
ordinal: "fortieth",
},
NumberNames {
cardinal: "fifty",
ordinal: "fiftieth",
},
NumberNames {
cardinal: "sixty",
ordinal: "sixtieth",
},
NumberNames {
cardinal: "seventy",
ordinal: "seventieth",
},
NumberNames {
cardinal: "eighty",
ordinal: "eightieth",
},
NumberNames {
cardinal: "ninety",
ordinal: "ninetieth",
},
];
 
Line 1,686 ⟶ 1,770:
cardinal: &'static str,
ordinal: &'static str,
number: usize,
}
 
Line 1,703 ⟶ 1,787:
cardinal: "hundred",
ordinal: "hundredth",
number: 100,
},
NamedNumber {
cardinal: "thousand",
ordinal: "thousandth",
number: 1000 },
},
NamedNumber {
cardinal: "million",
ordinal: "millionth",
number: 1000000,
},
NamedNumber {
cardinal: "billion",
ordinal: "billionth",
number: 1000000000 },
},
NamedNumber {
cardinal: "trillion",
ordinal: "trillionth",
number: 1000000000000,
},
NamedNumber {
cardinal: "quadrillion",
ordinal: "quadrillionth",
number: 1000000000000000,
},
NamedNumber {
cardinal: "quintillion",
ordinal: "quintillionth",
number: 1000000000000000000,
},
];
 
Line 1,740 ⟶ 1,826:
return &NAMED_NUMBERS[i - 1];
}
}
&NAMED_NUMBERS[N - 1]
}
Line 1,756 ⟶ 1,842:
struct WordList {
words: Vec<(usize, usize)>,
string: String,
}
 
impl WordList {
fn new() -> WordList {
WordList { words: Vec::new(), string: String::new() }
words: Vec::new(),
string: String::new(),
}
}
fn append(&mut self, s: &str) {
Line 1,797 ⟶ 1,886:
} else if n < 100 {
if n % 10 == 0 {
words.append(TENS[n / 10 - 2].get_name(ordinal));
} else {
words.append(TENS[n / 10 - 2].get_name(false));
words.extend("-");
words.extend(SMALL_NAMES[n % 10].get_name(ordinal));
Line 1,806 ⟶ 1,895:
} else {
let big = big_name(n);
count += append_number_name(words, n / big.number, false);
if n % big.number == 0 {
words.append(big.get_name(ordinal));
Line 1,822 ⟶ 1,911:
let mut result = WordList::new();
const WORDS: &'static [&'static str] = &[
"Four", "is", "the", "number", "of", "letters", "in", "the",
"firstis", "word", "of", "this", "sentence,"];
"the",
"number",
"of",
"letters",
"in",
"the",
"first",
"word",
"of",
"this",
"sentence,",
];
for s in WORDS {
result.append(s);
Line 1,862 ⟶ 1,963:
let s = sentence(n);
let word = s.get_word(n - 1);
print!("The {}th word is '{}' and has {} letters. ", n, word,
"The {}th word is count_letters(word));'{}' and has {} letters. ",
n,
word,
count_letters(word)
);
println!("Sentence length: {}", s.sentence_length());
n *= 10;
1,777

edits