Професионална програма
Loading...
+ Нов въпрос
Jaihertz avatar Jaihertz 4 Точки

EX09 - Spice Must Flow

Някой има ли представа на това какъв му е случаят, че дава 57 / 100 в Джъджа?

 

using System;
using System.Numerics;

namespace EX09_Spice_Must_Flow
{
    class MineProduction
    {
        static void Main()
        {
            BigInteger startingYeld = BigInteger.Parse(Console.ReadLine());

            BigInteger produced = 0;
            BigInteger days = 0;

            while (startingYeld >= 100)
            {
                produced += startingYeld - 26;
                startingYeld -= 10;
                days++;
            }

            produced -= 26;

            Console.WriteLine(days);
            Console.WriteLine(produced);
        }
    }
}

 

Тагове:
0
Fundamentals Module
damesova avatar damesova 203 Точки

Здравей,

Първо да уточня, че съм от Java, но що се отнася до логиката ти виждам на първо четене, че не си обхванал случаите, когато входът ще е по-малко от 100.

Включи си тая логика, след което търси други грешки.

Успех.

0
31/01/2019 22:18:00
Hr2Peev avatar Hr2Peev 13 Точки

Благодаря за насоката. И аз не съобразих да проверя за <100.

При мен тръгна така:

int yeld = int.Parse(Console.ReadLine());
            int collect  = 0;
            int days = 0;
            if (yeld >= 100)
            {               
                while (yeld >= 100)
                {
                    days++;
                    collect += yeld;
                    yeld -= 10;

                }
                collect -= (days + 1) * 26;
                Console.WriteLine(days);
                Console.WriteLine(collect);
            }
            else
            {
                Console.WriteLine(days);
                Console.WriteLine(collect);
            }

0
kle4ka avatar kle4ka 19 Точки

Сложи преди while цикъла една проверка ако началното количество е по малко от 100 да печати директно, защото ако няма поне 100 хората никога не почват работа. Условието е написано малоумно, повечето колеги се запъват точно на тази стъпка, включително и аз това бях пропуснала. С тази проверка ти дава 100/100 ^^

if(startingYeld < 100){
            Console.WriteLine(days);
            Console.WriteLine(produced);
              
            }else{

            while (startingYeld >= 100)
            {

0
Mr.D.Dimitrov avatar Mr.D.Dimitrov 1 Точки

Thanks!  Обясненията са им FRUSTRATING!

0
28/08/2021 22:15:08
Jaihertz avatar Jaihertz 4 Точки

Благорадя Ви момичета! Условието нещо ме бъгна и мене честно казано в частта си, че работниците не могат да консумират повече отколкото има. Иначе идеята с проверката и в частност пропуска ми, дори не ща да ги коментирам :D

 

Ето и работещият C# код:

 

using System;
using System.Numerics;

namespace EX09_Spice_Must_Flow
{
    class MineProduction
    {
        static void Main()
        {
            BigInteger startingYeld = BigInteger.Parse(Console.ReadLine());

            BigInteger produced = 0;
            BigInteger days = 0;

            if (startingYeld < 100)
            {
                Console.WriteLine(days);
                Console.WriteLine(produced);
            }
            else
            {
                while (startingYeld >= 100)
                {
                    produced += startingYeld - 26;
                    startingYeld -= 10;
                    days++;
                }

                produced -= 26;

                Console.WriteLine(days);
                Console.WriteLine(produced);
            }
        }
    }
}

 

1
01/02/2019 05:24:25