Софтуерно Инженерство
Loading...
+ Нов въпрос
Vesela_5 avatar Vesela_5 27 Точки

Задача "Number 0...100 to Text" - PHP

Имам решена подобна задача, но за трансформиране на 10 числа в думи. Тъй като в лекциите сме стигнали само до if-else конструкции, ми се струва, че това не е подходящ метод за решаване на тази задача. Искам да помоля, ако някой знае по-кратък метод за решаване, с някаква функция примерно, да го сподели?

Тагове:
0
Programming Basics with PHP
tdk928 avatar tdk928 109 Точки

Нямам го на PHP , но мога да ти кажа идеята която се изисква от задачата.Първите 20 числа в диапазона 1-20 ги провери 1 по 1 с 20 if/switch.Числата от 20 до 99 примерно 78 ги разглеждай като 78%10 и 78/10 така ще вземеш първото и 2-рото число.След което с 10 if/switch провери ако първото е 0/1/2/... печаташ "Seven " същото и за 2-рото и печаташ "Eighty".
П.С има и по-елегантен и кратък начин но включва материал от следваш курс.Прилагам ти 2 решения на Java.Едното което описах(почти същото ще е на PHP и едно по-advanced).
https://pastebin.com/pg8mK4kK
https://pastebin.com/9tS9NxNx

1
Vesela_5 avatar Vesela_5 27 Точки

И аз така започнах с if-else за първите 20 числа, но ми се стори прекалено дълго и досадно решение. Един колега ми изпрати инфо как се решава с масив, все още не сме стигнали до лекциите за масиви, затова не можах да се досетя сама, но това е най-удобното и кратко решение.

0
TeodorStefanovPld avatar TeodorStefanovPld 1280 Точки

Вие масивите няма да ги стигнете те са час в programing fundamentals. Иначе решението без тях е дълго да може да си направите живота малко по лесен с едно / и % делене  но пак е разписване.

0
Vesela_5 avatar Vesela_5 27 Точки

Надявам се да стигна и до programing fundamentals. :D В момента се опитвам да съм в час с А и Б на php, защото имам чувството, че всеки пропуск ще има след това лавинообразен отрицателен ефект.

0
chrisBG69 avatar chrisBG69 30 Точки

И аз стигнах до тази задача, намерих нещо, което би могло да свърши работа:

<?php<br> $f = new NumberFormatter("en", NumberFormatter::SPELLOUT);<br> echo $f->format(123456);<br> <br> ?><br> <br> Produces the result:<br> one hundred twenty-three thousand four hundred fifty-six

0
Vesela_5 avatar Vesela_5 27 Точки

Аз го видях това, мисля че в stackoverflow, само че не ми върши работа в случая. Доста код още се наложи да се добави. Най-прегледно стана с масив.

0