Loading...
ivanlutov avatar ivanlutov 5 Точки

Проблем с задача 08.Traveling at Light Speed

Колеги това е условието:

Traveling at Light Speed

Create a program that finds for how many weeks, days, hours, minutes and seconds can an object fly at light speed

Assume that 1 light year == 9 450 000 000 000 km.

Assume that the speed of light == 300 000 km / second.

Input

  • On first line you receive – the light years to convert

Output

Every number in the output should be formatted to 0 digits after the floating point

  • On first line – time in weeks
  • On second line – time in days
  • On third line – time in hours
  • On fourth line – time in minutes
  • On fifth line – time in seconds

Examples

Input

Output

 

Input

Output

 

Input

Output

14

729 weeks

1 days

4 hours

0 minutes

0 seconds

 

5

260 weeks

3 days

22 hours

0 minutes

0 seconds

 

0.00000005

0 weeks

0 days

0 hours

0 minutes

2 seconds

Hints

  • Search in internet how to convert units.
  • The type decimal is big enough for the calculations.

 

А това ми е кода :
http://pastebin.com/RFxHvgyf
 

ПС: Решението ми е било правилно, имало е грешки в тестовете на judge. (преди това ми даваше 50/100)

Тагове:
0
Programming Fundamentals 28/01/2017 21:04:00
speednet avatar speednet 12 Точки
Best Answer

Кодът ти на мен ми дава 100/100 в judge. 

0
ivanlutov avatar ivanlutov 5 Точки

Да имаше проблем в тестовете на judge ама вече са оправени.

 

0
bayan avatar bayan 0 Точки

Здравей колега , би ли обяснил в коментар как си подходил при решението на тази задача. Виждам , че изчисляваш в променливата total секундите които са в 5 години но каква логика си следвал при решението на задачата. Защото като проследявам с дебъгера кода ти, ми е трудно да проследя как си подходил и как аз да подхождам в бъдеще с такъв тип задачи. Драсни някой ред как стъпка по стъпка си я решил , ако имаш свободно време. Благодаря предварително. 

0
29/01/2017 23:41:46
ivanlutov avatar ivanlutov 5 Точки

Здравей в total намирам цялото време, което трябва да изпринтирам в секунди. Иначе изчислява за всякакъв вход от конзолата като години (не само за 5) После пишеше да си намерим начин в интернет за изчисляване на цялото време (секудни, минути, часове, дни и т.н.). И вместо да правя ето тези изчисления на "ръка":

decimal Weeks= total / 60 / 60 / 24 / 7;

decimal Days= total  / 60 / 60 / 24 % 7;

decimal Hours = total  / 60 / 60 % 24;

decimal Minutes = total / 60 % 60;

decimal Seconds= total  % 60;


Метода TimeSpan си ги прави тия изчисления автоматично като иска само да му подадеш секундите (трябва да са double, за това съм ги и кастнал към double) и ги запазвам в diff( това име беше в примера в интернет, който намерих не съм го променял).И оттам като напишеш "diff след това "." ти излизат различните неща, които можеш да взимаш от тези секудни(има опции да ти ги конвентира остатъка към секунди, минути, часове и дни) Заради това и за да взема седмиците съм използвал пак дните/7(понеже седмицата има 7 дни). И после отдолу в formatted му задаваш формата, в който искаш да ги изпринтираш. 
Не мога да обяснявам много добре, но дано си ме разбрал. А до дебъгера предполагам, че не можеш да се ориентираш, защото тая функция TimeSpan е автоматизирана.
ПС: И друго, което се сетих за да не можеш да дебъгнеш понеже за да се използва тази функция или както се казва трябва отгоре да имаш добавен " using System.Globalization; " понеже ползва тази библиотека(и ако го нямаш просто TimeSpan няма да фунционира), както "using System;" ти е за най-базовите функции като "Console.ReadLine()" примерно.

1
30/01/2017 09:00:01
mkpetrov avatar mkpetrov 8 Точки

Добре а защо на мен ми дава 50/100 judge,при положение че примерите които са дадени в задачите ги получавам , но според самия judge и те са грешни ?

В примерите ли е грешката или в judge ?

Кода ми е http://pastebin.com/Uk26eTP2 .

0
nikolai.gerov avatar nikolai.gerov 2 Точки

Не съм сигурен, но според мен някъде се бърка при пресмятането по този начин. Това, това което забелязвам е, че при пресмятане на ръка и 0.00000005 този input се получава отговор 1.575 секунди, което се закръгляна 2 секунди (отговора в judge e 1 секунда). При използване на TimeSpan решението също е 1 може да е проблем от закръгляне, които не се отчита. Факт е че на колегата решието дава 100/100 в judge.

0
ivanlutov avatar ivanlutov 5 Точки

Всъщност е точно така преди да поправят тестовете в judge ми гърмеше на секундите и дните (точно поради закръглянето). А дали се закръглява надолу или нагоре при времето нямам идея. Иначе дали TimeSpan е по-правилен начин или смятането директно нямам идея. Най-добре е да се направят тестове в judge с данни, при които да минава и по 2-та начина.

0
30/01/2017 16:32:53
rosen.ivanov avatar rosen.ivanov 130 Точки

Промени го на Math.Floor и ще се получи.

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