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 531 Точки
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 531 Точки

точно , че няма разяснения и затова е възможен такъв 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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.