Изпит 1 от миналата година, problem 2 text to numbers.


0

 Някой случайно да има решението на гореспоменатата задача? 

Благодаря предварително.




Отговори



1

Здравей,

Това е моето решение.

А това е авторското.

Все пак те съветвам първо да се опиташ да ги решиш сам.

Успех. :)


от pepsi_555 (1932 точки)


0

Опитах. Аз за това го търся. Имам някаква минавал а грешка, която не мога да открия. Къде да намеря авторските решения принципно? 

А и имах предвид най-първия изпит от 2015. Написал съм грешно. Дали го имаш и него? 


от Dido_Aint (577 точки)

1

Вместо "Problem еди-кой-си-номер", напиши името на задачата, за която питаш, направо. Ще е по-ясно. :)

Авторските решения на задачите от 2015 са тук.

Останалите могат да се намерят по страниците на старите издания на курса. :)


от pepsi_555 (1932 точки)



1
Eто и от мен едно решение.

от milislavski (886 точки)


1
Това е моето решение. Дано ти помогне.

от suzunov (321 точки)


0

Всичко схващам освен ей това и всички подобни на него:

"(sign - '0');"

Можеш ли накратко само да ми пообясниш?


от Dido_Aint (577 точки)

1
Когато четеш string символ по символ, този символ ти е от тип char, съответно е необходимо да го преобразуваш в число, за да можеш за извършваш всякакви математически операции с него. Това се прави именно с "(sign - '0');"

от marianamn (290 точки)



0

Ето и моето решение. :)

Различно е от останалите.


от pepsi_555 (1932 точки)


0

Моята логика беше същата, само дето вместо while обхождам с foreach -  минавам нулевите но всички останали и фийлват - някой ако може да каже къде е грешката

using System;
using System.Threading.Tasks;
using System.Numerics;

    class Program
    {
        static void Main()
        {
            uint M = uint.Parse(Console.ReadLine());
            string input = Console.ReadLine().ToUpper();
            BigInteger result = 0;
            foreach (var letter in input)
            {
                if (letter == '@')
                {
                    break;
                }
                else if (letter - '0' > 0 && letter - '0' <= 9)
                {
                    result *= (BigInteger)(letter - '0');
                                    }
                else if (letter-65>0 && letter-65 <=35)
                {
                    result += (BigInteger)(letter - 65);  
                }
                else
                {
                    result %= M;
                }
            }
            Console.WriteLine(result);
        }
    }


от maryakach (47 точки)