Loading...
stanislav.ib avatar stanislav.ib 4 Точки

[Programming Fundamentals] Data Types and Variables - 10. Data Overflow

Здравейте, реших една задача по малко тъп начин,видях по-добрия ,но се мъча да разбера защо моят вариант ми дава 90 от 100 - не гърми при нулевите.
Сто пъти прегледах всичко,но не мога да открия къде греша.
Помощ? :)

 

https://pastebin.com/WSmvS2SQ

0
Programming Fundamentals 19/06/2017 15:00:27
icowwww avatar icowwww 2779 Точки
Best Answer

Здравей, доста дълго гледах решението ти докато накрая стигнах до извода, че трябва да разбера теста какъв е. Оказа се, че 7мия тест в джъдж е:

num1 == ulong.MaxValue

num2 == по-малко число, но пак ulong

Решението ти даваше, че превърта ulong 0 пъти в този случай, а трябва да изкара

bigger type: ulong
bigger type: ulong
ulong.MaxValue can overflow ulong 1 times. Защото е точно на границата

добавих проверка за този частен случай и мина със 100/100, много гаден тест :)

0
18/06/2017 00:58:30
stanislav.ib avatar stanislav.ib 4 Точки

Благодаря за отделеното време. Аз грешно предположих,че двете числа задължително ще са от различен тип понеже има изход по-голям и по-малък тип.
Задавам променлива 0 в началото да брои overflows. 
В случая, когато първото число е по-голямо и е ulong изобщо не правя проверка при която второто също е ulong - имам само иф - елсове за второ число за uint,ushort and byte,няма дефолт else изход и не изчислява нищо за оверфлоу и каунта си остава направо 0,както съм го задал в началото...

Но затова се сетих,едва ти като ми каза :D

Tест има за ulong само,но при всички варианти ,при които и двете числа са от един тип при мен оверфлоът ще е 0 вместо един....
 

0
18/06/2017 01:10:52
icowwww avatar icowwww 2779 Точки

Аз баш това го гледах в решението ти, накрая реших, че си се сетил добре да пренебрегнеш случаите , в които и двете са един вид тип число, защото си взима overflowCount = 0 и няма проблем(малко станно звучи хем да е в тоя тип, хем да го превърта). Е да ама ако си е баш на границата не е коректно, не бях ли тръгнал да търся какъв точно е инпута не знам къде щеше да му излезе края :Д

0
18/06/2017 01:33:32
stanislav.ib avatar stanislav.ib 4 Точки

A как разбираш какъв е инпутът :D

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