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

[Problem 7. Sum big numbers & Problem 8. Multiply big number] Advanced C# String Processing Exercise

Колеги, привет. Бихте ли дали мнение за задачи 7 и 8 от упражнението по Manual String Processing. И за двете задачи получавам по един грешен отговор, вероятно бъркам някъде логиката на изчисление и ще ми е полезно да погледна и други решения. Ето моите:

7. Sum Big Numbers

8. Multiply Big Numbers

Поздрави.

Тагове:
3
C# Advanced
kaloyannikov avatar kaloyannikov 530 Точки
Best Answer

Може да имаш такъв input 

000000005 

000000005

Вкарай го и на двете и мисля , че ще разбереш защо ти бяга 1 тест.

 

10
kracheff avatar kracheff 11 Точки

Благодаря, колега. Наистина си прав - изрязах нулите отпред на инпута с TrimStart(new char[] { '0' }) и се получи.

Чудя се само, каква е логиката да се подава такъв инпут. Първо, че 0000005 не е числото 5 и второ, че в условието е посочено че се подават числа от 0 до 10^50 без някакви разяснения. На мен поне не ми идва интуитивно да "изчиствам" инпута по такъв начин.

Да махнеш whitespace вместо само единичен спейс от инпут с различни параметри на един ред е по-разбираемо, но това да се сетя, че може да сложат нули пред число...за мен поне бие всякакви фантазии :) . Десет точки от десет за автора на тестовете в джъджа ;)

1
kaloyannikov avatar kaloyannikov 530 Точки

точно , че няма разяснения и затова е възможен такъв input и аз нз как стигнах до там да преценя ,че може да го има. Но с проба - грешка и така тестваш.

0
kracheff avatar kracheff 11 Точки

Благодаря, колега. Интересно решение с Linq.

По моя начин не се получаваше, защото се оказа, че има входни данни с числа с нули отпред, както е писал колегата Калоян по-долу.

Поздрави.

0
Alexander7337 avatar Alexander7337 15 Точки

Добре. Ще видя и умножението дали е същия входът.

0
sktomov avatar sktomov 49 Точки

Ще стане и за умножение, ама пустия му 4-ти тест.. Ето и решението: http://pastebin.com/U9HdPyEz

П.п. в условието на 3тия output отговора е грешен.


Поздрави

0
20/10/2016 22:46:45
tishkata86 avatar tishkata86 14 Точки

Здравейте проблема при сумирването е че ти дават вход с нули отпред както колегата предложи, а при умножението е че ако умножиш по нула и накрая премахнеш всички нули които имаш отпред, а то отговора ти е нула, накрая нищо не принтирваш :)

Така че за първата задача премахваш всички нули отпред, а за втората си правиш проверка ако целия ти резултат е нула да принтирваш нула, както и да премахнеш всички нли отпред ако имаш отговор повече от нула :)

2
08/06/2016 13:58:41
sly_racoon88 avatar sly_racoon88 10 Точки

И аз се чудех къде греша, заради същия вход.

Решение без Big Int:

http://pastebin.com/tXYHVZi7

Цифрите се събират една по една в стринг отзад напред и накрая стринга се обръща.

0
19/10/2016 12:25:32
IvMironov avatar IvMironov 35 Точки

А някой успя ли да направи задача 7. Multiply big number на 100/100 точки. Във VS ми дава верни отговори на всякакви комбинации, но в Judge не мога да изкарам повече  от 80/100. Това ми е кода: http://pastebin.com/uMLhA1CS.

0
alabama415 avatar alabama415 101 Точки

При мен 4 тест гърми на 7. Multiply big number, ако някой има идея защо, ще се радвам да сподели :)

0
sktomov avatar sktomov 49 Точки

Намерих го, така става като не четем условието внимателно : The second one will be a single digit number (0 to 9)

 

Лека вечер

1
conteo avatar conteo -1 Точки

За 100 точки моя код е супер простичък и ми даде 100/100

BigInteger num1 = BigInteger.Parse(Console.ReadLine());
            int num2 = int.Parse(Console.ReadLine());
            var total = num1 * num2;
            Console.WriteLine("{0}",total);

 

 

знам, че има ограничения но от време на време може да се прескачат! :)

-1