Loading...
Kristianchooy avatar Kristianchooy 59 Точки

[ЗАДАЧА] Back To The Past

Решението на задачата ми -                  http://pastebin.com/eEtkhjD1
Условие на задачата -                    https://judge.softuni.bg/Contests/Practice/Index/233#3

 

 

Judge ми дава 80/100 , примерните решения ги минава и няма проблем , но мисля че при първата проверка някъде се дъни за четните години но не мога да разбера къде ... някой ако може да се отзове на помощ при намиране на грешката ми 

Тагове:
0
Programming Basics
Plamen27 avatar Plamen27 599 Точки
Best Answer

Здравей,

ето фикс на кода ти:

http://pastebin.com/82Ze111M

Разкарах една част от променливите, които си въвел, те само усложняват решението и увеличават възможностите за грешки.

0
18/07/2016 15:56:23
VanessaShopping avatar VanessaShopping 48 Точки

Въпроса е къде точно става самата грешка :)

Какъв е тоя вход от джъджа ,че задачата на колегата дава грешка ?

От 1 час въвеждам различни възможности на вход ( даже и с 0лв ) и сравнявам отговора с моето решение и всичко е точно.

Като че ли джъджа е решил ,че тоя код не го кефи и дава 20 точки по-малко :D 

Моля някой който вижда грешката или знае входа в джъджа да сподели 

 

0
Plamen27 avatar Plamen27 599 Точки

Самата грешка е в начина по който той смята.
За мен той е в корен грешен.

Ето друг фикс на кода му:

http://pastebin.com/dQDrsVU5

Грешката е начина му на смятане - по неизвести за мен причини той всеки път вади от цялото наследство сумата която се натрупва в четните и отделно в нечетните години.

Точно мога да кажа, че четвъртата грешка е при граничен случай - когато сумата на похарчените средства е равна на наследството.

0
VanessaShopping avatar VanessaShopping 48 Точки

И това пробвах когато наследената сума е равна на похарчената :) ( като използвах няколко проверки-  четни и нечетни години и суми с и без цифри след десетичната) и пак всичко си е ОК... Наистина не виждам къде е грешката

0
fl3x1324 avatar fl3x1324 60 Точки

100/100 Аз го направих с do-while, линк. По-късно ще видя твоето, но може някой друг да се включи до тогава. Поздрави!

1
18/07/2016 15:25:39
VanessaShopping avatar VanessaShopping 48 Точки

Ето го и моето решение. Почти същото като твоето е. http://pastebin.com/vJKaa3CD

При мен е 100/100

Единствената причина е нещо да се объркват сметките при:


                    sum1 = sum1 + spend;
                    total1 = heritage - sum1;

и 

                    sum2 = sum2 + spend;
                    total2 = heritage - sum2;

Грешката е много малка и тъпа но не се вижда....

Пробвах с :

- четни и нечени години (1803 и 1804) и големи години (1900 и 1899)

- малки и големи суми които са с и без цифри след десетичната  ( 12000.00 и 12000.15)  (950000.00 и 950000.15)

- променливите ти ги промених от " = 0 " на " = 0.0 "

-  всички суми ги промених от " sum1 = sum1 + spend; "  на " sum1 = (double)(sum1 + spend); "

И въпреки това всичко изглежда ,че работи освен в джъджа

и аз не успях да ги направя 100 от 100 с твойто решение.... Някой наистина трябва да помогне!

 

 

1
Bullsized avatar Bullsized 153 Точки

Хора, съжелявам, че връщам такава стара тема, но се опитах да подходя по различен начин на тази задача,
ето линк: http://pastebin.com/PaUwxcyG 
Не ползвам никакви цикли, а всичко си го смятам с формули. Като цяло не е много разбираемо, но работи.
Като го копирам в джъджа ми дава 90/100 и не ми идва на акъла къде гърми програмата? 
Да не би да трябва да сложа иф-ове на парсовете?
Другото - на самия изпит - там сигурни ли сме, че judge-a ще тества със зададените от условието интервали? Да не би да пише, че иска число [от 1 до 10], а то да тества с -5 например?

0
emilia98 avatar emilia98 92 Точки

На изпита, judge-a тества решенията с input-и от дадените в условието интервали. Не е нужно да бъдат правени проверки дали въведените данни са коректни.
 

1
10/03/2017 19:43:05
emilia98 avatar emilia98 92 Точки

На теб ти дава грешка на 6 тест.
Ето го и него:
Input                                Output
50000.99                          Yes! He will live a carefree life and will have 0.99 dollars left.
1803

Обаче, output-а,който твоят код дава, е:
Yes! He will live a carefree life and will have 538.49 dollars left.

Правейки малко изчисления:
Изчисленията, които трябва да имаш са: x = 24000 -> На теб ти дава 30000 -> Имаш грешка в изчисленията на x и на y (оставям на теб да откриеш на y).

Хубаво е двете променливи year и yearsToLive да са int.

decimal money = decimal.Parse(Console.ReadLine());
int year = int.Parse(Console.ReadLine());
int yearsToLive = year - 1800;
decimal x = (((yearsToLive / 2) + 1) * 12000); // chetna
decimal y = ((yearsToLive + 1) / 2) * 12000 + 50 * ((yearsToLive + 1) / 2) * ((yearsToLive + 1)/2 + 18); // nechetna 


Разучи си защо се изчисляват по този начин x и y.

П.С: Все пак мисля,че по-доброто и лесно решение е с цикъл, но и твоето не е лошо.

0
10/03/2017 20:16:59
Bullsized avatar Bullsized 153 Точки

Искрени благодарности и за двата отговора. За джъдж-а - разбрано, без излишни иф-ове в кода :)

Относно задачата - наистина съм имал грешка в y. Но доста интересно как останалите 9 теста са минали, дори и с грешката :) сега оценявам решението с for. 

И последно - от къде намери Input и Оutput-a за грешното условие? (:

0
Miroslav_Kisov avatar Miroslav_Kisov 60 Точки

Моето решение, надявам се да помогне https://pastebin.com/g4sSdMhx

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