Loading...
Raykov16 avatar Raykov16 0 Точки

[Homework] C# fundamentals - Exercise Data types and variables - Задача 9 - Spice must flow

Здравейте имам въпрос свързан със задачата. Защо в judge следният код дава 50/100: https://pastebin.com/ZYHgwqG2

Но ако вместо това направя проверка в цикъла и там поставя кода по този начин: https://pastebin.com/rcWF9B0G 

Judge ми дава 100/100 ? Това което ме обърква, е че и в двата случая кодът ще се изпълни само когато while цикъла приключва , в единият случай ще е в края на завъртането, а в другият ще е след като цикълът е приключил напълно, но  и в двата случая това парче код за което става дума ще се изпълни чак когато всички други изчисления са направени. През моята гледна точка ми се струва, че би трябвало да е едно и също, но според judge явно не е , та може ли някой да ми обясни защо ? Така или иначе цикълът винаги ще спре тогава когато паднем под 100 добив на ден, защо изобщо ни е нужна проверка дали сме паднали под 100 в този случай и още по странното ми е защо без тази проверка не работи ако така или иначе ще се стигне до въпросното парче код ?

 

*отговориха ми: Ако има начална стойност по - малка от 100 ще имаме отрицателен gathered, а в случайа с проверката ще си имаме просто 0 * 

Тагове:
0
C# Fundamentals 25/09/2021 15:27:40
Axiomatik avatar Axiomatik 2422 Точки

First code does not pass all tests since there is no validation for total amount to drop below 0 spice collected.

            if (totalGathered < 0)
            {
                totalGathered = 0;
            }

 

When using any number below 26 this will result in a negative result in the final output, which is not a problem in the second solution because the final 26 spices get only subtracted inside of the while loop. 

Add the above validation to your first solution to fix the problem:

using System;
 
namespace SecondApp
{
    class Program
    {
        static void Main(string[] args)
        {
            int startingYield = int.Parse(Console.ReadLine());
            int days = 0;
            int totalGathered = 0;
            while (startingYield >= 100)
            {
                days++;
                totalGathered += startingYield - 26;
                startingYield -= 10;              
            }
            totalGathered -= 26;
            if (totalGathered < 0)
            {
                totalGathered = 0;
            }
            Console.WriteLine($"{days}");
            Console.WriteLine($"{totalGathered}");
        }
    }
}

 

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