Loading...
branimir1995 avatar branimir1995 0 Точки

Изписване на число до 100 с думи

Здравейте, имам въпрос относно една задача от домашното за прости проверки. Както пише в заглавието, задачата е да напиша число в конзолата и то да бъде изписано с думи. Единствения начин, който се сетих да напиша, е да направя 100 "if-else" проверки, но мисля, че всички ще се съгласите с мен, че това е прекалено много. Някой може ли да подметне някаква идея как това може да стане по-бързо и с по-малко писане. Благодаря предварително! :)

Тагове:
0
Programming Basics 14/09/2016 17:20:35
lengarski avatar lengarski 42 Точки

това дали ще ти свърши работа ?

 

http://stackoverflow.com/questions/2729752/converting-numbers-in-to-words-c-sharp

 

 

0
Pilgrimage avatar Pilgrimage 515 Точки

Права си.

Има широк диапазон от по-добри, по-кратки, по-елегантни и оптимални решения :-). Но в най-добрите от тях се използват конструкции, които още не сте изучавали ( например Dictionary).

Но можеш да започнеш, като напишеш 20-30 подбрани числа (словом) и ги анализираш, за да намериш повторенията и закономерностите. Това ще ти подскаже кои думички ти трябват, за да сглобяваш от тях всички числа в диапазона.

Например задължително ти трябват от 0 до 12 и 100, оттам нататък е въпрос на оптимизация.

Аз бях направил поотделно и десетиците (20, 30, 40 ...) но после видях решение в което дори и те бяха сглобявани.

Не ти давам готово решение, защото това е една от най-интересните задачи в курса, а не искам да те лишавам от удоволствието да я разчепкаш!

Успех ! :-)

0
ZornitsaSerbezova avatar ZornitsaSerbezova 455 Точки

Моето решение от 1 до 999

http://pastebin.com/b879DDtr

0
14/09/2016 18:19:52
StefkaVasileva avatar StefkaVasileva 250 Точки

Здравей!

Опитай да запазиш текста в три масива - в единият текста на цифрите от 0 до 9 , другият от 11 до 19 и в последният  десетиците. Когато входа ти е от 0 до 9 или от 11 до 19 , просто обхождаш конкретният масив и с условна конструкция проверяваш за съвпадение.

Когато числото е 35 например  можеш да направиш два цикъла. С първият обхождаш масива с десетиците и при съвпадение с Console.Write можеш да изпишеш текста на числото 30 в случая. Като проверката можеш да я направиш подобно на тази:

if ( inputNumber / 10) % 10== i

{

   Console.Write(array[i].ToString());
                    break;

}

След това с другия цикъл, ще обходиш масива ,които съдържа текста на цифрите от 0 до 9 и проверяваш  за 5 съответно, последната цифра можеш да я вземеш с  inputNumber  % 10 .  

Дано да съм помогнала :) 

  

0
donahuedtg avatar donahuedtg 2 Точки

Здравей,

Има вариант и само с два масива, единия с числата от 0 до 19 вкл. изписани имената им, а другия да съдържа всичко останало 20,30, 40  и т.н. до 90. И от там нататък е както е описала Стефка в предишния пост. По долу е моя вариант на задачата.

 

http://pastebin.com/bSTyMKh7

0
14/09/2016 18:33:18
JivkoJelev avatar JivkoJelev 235 Точки

Това ми е първото решение за което ми отне доста време.http://pastebin.com/DnvdsqGK.

 Това е втория вариант който е доста по-кратък , но се използват масиви.Решението не е мое , но е доста полезно и доста време спестява. Надявам се да съм бил полезен.http://pastebin.com/E5erEa70.

0
14/09/2016 20:16:31
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.