Loading...
e.petrova avatar e.petrova 94 Точки

Здравей. Имаш объркана проверка, в единият от случаите. Трябва да присъства че обема на басейна е равен на запълненената част.

Ако искаш погледни моето решение от тук.

0
george_gramatikov avatar george_gramatikov 1 Точки

Така днес разбрах къде ми е грешката, не закръглям Напълнения обем към цяло число, тръба 1 и тръба 2 в процентити ги закръглям, само че напълнения обем го оставям незакръглен.

Иначе проверките са ми същите само където почвам първо с втората проверка, което не е проблем.

Исках да те питам:

Console.WriteLine("The pool is {0}% full. Pipe 1: {1}%. Pipe 2: {2}%.", (int)(percentageFilledPool), (int)(perecentageFilledFirstPipe),  (int)(percentageFilledSecondPipe));

С тези инт-ове което си записала така в скобите гарантира ли ни че ще обърне променливите  от double в integer(цяло число) така записано.

Понеже аз съм ползвал Math.Floor, незнаех че и така може.

0
e.petrova avatar e.petrova 94 Точки

Това (int) пред скобите се нарича кастване, по този начин преобразуваш от един тип в друг. Като се гарантира, че всичко след десетичната запетая ще изчезне, тоест остава само целочислената част. В условието на задачата не се изисква закръгляне. Друг вариант, който може да се използва е Math.Truncate, като по особеното е че винаги връща стойността, която е по-близо до нулата. Или казано по друг начин Math.Truncate изпълнява функцията Math.Floor при положителни числа, и Math.Ceiling  при отрицателни числа.

0
23/11/2016 12:08:52
GapoBG avatar GapoBG 15 Точки

Ето моето решение (100/100):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PoolPipes
{
    class PoolPipes
    {
        static void Main(string[] args)
        {
            var V = double.Parse(Console.ReadLine());
            var p1 = double.Parse(Console.ReadLine());
            var p2 = double.Parse(Console.ReadLine());
            var HH = double.Parse(Console.ReadLine());
            var resultP1 = p1 * HH;
            var resultP2 = p2 * HH;
            var allPipe = resultP1 + resultP2;
            var FullPool = (int)((allPipe / V) * 100);
            var percentP1 = (int)((resultP1 / allPipe) * 100);
            var percentP2 = (int)((resultP2 / allPipe) * 100);
            var overflows = (allPipe) - V;
            


            if (allPipe <= V)
            {
                Console.WriteLine("The pool is {0}% full. Pipe 1: {1}%. Pipe 2: {2}%.",
                    FullPool, percentP1, percentP2);
            }
            else
            {
                Console.WriteLine("For {0} hours the pool overflows with {1} liters.", HH, overflows );
            }

        }
    }
}

 

0
g_todorov avatar g_todorov 106 Точки

Здравей,

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

В задачата се изисква ако басейна не се е напълнил колко процента от него са запълнени - тоест общо обема на 2-те тръби разделен на обема на басейна и това по 100, за да ти даде %. След което се изисква процента "принос" на всяка една от 2-те тръби - тоест ще търсиш частта на първата тръба разделена на общо литрите от 2-те тръби по 100 и частта на 2-рата разделена общо на литрите от 2-те * 100, (а не делено на обема на басейна!). За закръгляне ползваш Math.Truncate. Най-важното не само тук, но и във всяка друга задача е да се чете внимателно условието. Помня като я решавах бях загрял на вълна състезателно кодене и се хванах на тая въдица с част от цяло в %,  :)

ето ми и кода - работи на 100

http://pastebin.com/zaVUJQ1h

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