Софтуерно Инженерство
Loading...
kirildodov avatar kirildodov 0 Точки

04. Everest

Здравейте! Задача 4. Еверест от  от изпита Programming Basics Online Exam - 1 and 2 December 2018 ме затрудни. Judge ми дава 80/100 и не мога да си открия грешката и моля за малко помощ! Ето го и решението ми" Solution #10817258

 

using System;

namespace Exam___1_and_2_December_2018
{
    class Program
    {
        static void Main(string[] args)
        {
            string overnight = Console.ReadLine();
            int daysCounter = 0;
            int metersReached = 5364;
            if (overnight == "Yes")
            {
                daysCounter += 1;
            }

            while (overnight != "END" && daysCounter < 5)
            {
                metersReached += int.Parse(Console.ReadLine());
                if (overnight == "Yes")
                {
                    daysCounter++;
                }
                if (metersReached < 8848)
                {
                    overnight = Console.ReadLine();
                }
                else
                {
                    Console.WriteLine($"Goal reached for {daysCounter} days!");
                    break;
                }

            }

            if (overnight == "END" || daysCounter >= 5)
            {
                Console.WriteLine("Failed!");
                Console.WriteLine($"{metersReached}");
            }

        }
    }
}
 

Тагове:
Iv_Konov avatar Iv_Konov 341 Точки
Best Answer

Здравей,

 

Коригирах леко и - 100/100

 

===================

using System;

namespace Exam___1_and_2_December_2018
{
    class Program
    {
        static void Main(string[] args)
        {
            string overnight = Console.ReadLine();
            int daysCounter = 1; // коригирано, още в началото тече първия ден, и не трябва да зависи от overnight!
            int metersReached = 0;
            int climbedMeters = 5364;
            //if (overnight == "Yes") // предвид по-горното обяснение
            //{
            //    daysCounter += 1;
            //}

            while (overnight != "END") // && daysCounter < 5)
            {
                metersReached = int.Parse(Console.ReadLine()); // качените метри не трябва да се сумират преди да сме направили проверка дали дните са повече от 5! Но трябва да позволим вход на метри за 6и ден (обърни внимение на примерен предпоследен вход - 500 - не влиза в твоето решение). Това е причината да въдева нова променлива - climbedMeters.

                if (overnight == "Yes")
                {
                    daysCounter++;
                }

                if (daysCounter > 5)
                {
                    break;
                }
                climbedMeters += metersReached;


                if (climbedMeters >= 8848)
                {
                    Console.WriteLine($"Goal reached for {daysCounter} days!");
                    break;
                }

                overnight = Console.ReadLine();
            }

            if (overnight == "END" || daysCounter > 5)
            {
                Console.WriteLine("Failed!");
                Console.WriteLine($"{climbedMeters}");
            }

        }
    }
}

=====================================

 

Поздрави,

Иван

0
02/04/2019 15:14:19