Number 1...100 To Text
Има ли начин тази задача да се направи с по-малко код http://pastebin.com/EDgGFduz
Има ли начин тази задача да се направи с по-малко код http://pastebin.com/EDgGFduz
Аз така я направих: https://gist.github.com/astambi/18c3fb02a1b1d0afff72c407f08cb190
P.S. С корекция на "forty" след коментара на @enevlogiev
Реших да си поиграя с възможните решения на затачата и се чудя защо judge-a се сдухва на теста с Test input: 20 при това решение.
За 20 получаваш дублиране и отпечатваш twenty 2 пъти. Ето тук:
else if (number == "20")
{
Console.WriteLine("twenty");
}
if (explode[0] == "2" && explode.Length == 2) //TWENTIES
{
Console.Write("twenty");
Първо проверяваш дали числото е равно на 20. Ако да - печаташ "twenty". След това проверяваш дали числото е двуцифрено и дали първата цифра е равна на 2. Ако да - отново печаташ "twenty" и чак тогава проверяваш каква е втората цифра.
Можеш да го оправиш като махнеш първата проверка за number == 20.
Благодаря ти, не го бях забелязал това. Опитвам се да разбера системата за проверка, като пейстна този ми код (грешния) в judge, тук защо става така - http://prikachi.com/images/920/8803920m.jpg
Ха, интересен output. Досега не съм срещала такава ситуация, изглежда ми като бъг. Можеш да пишеш на SoftUni Team, за да го оправят, в случай, че проблема е в judge. Има форма за обратна връзка, която можеш да използваш.
Браво,
Много добро решение, аз също мислех как да съкратя кода, но не мовах да измисля нищо. :D
Не мога да разбера само, какво прави "%10 - 2" след number. Ще обясниш ли ?
number % 10 ще даде остатъка от делението на number на 10, напр. 13 % 10 дава 3. Използвам number % 10 - 2, за да стигна до правилния индекс на масива compositeName. Логиката е следната: 13 (thir-teen) е съставено от "thir" (индекс 1 в compositeName) + "teen", 14 - от "four" (индекс 2) + "teen" и т.н. За да сведа 13 до 1, 14 - до 2 и т.н. използвам остатъците при деление на 10 и коригирам, така че да получа съответстващия на името на числото индекс.