Loading...
Simeon.R avatar Simeon.R 198 Точки

Simple Loops - Exercise (Task 18 - Equal Pairs)

Здравейте, опитах се да реша задачата като игнорирам подксазката:

"Докато четете входните двойки, за всяка двойка без първата пресмятайте разликата с предходната. За целта пазете в отделна променлива сумата на предходната двойка."

Опитах вместо разликата да пазя най-голямата и най-малката сума двойки. В judge ми гърми 1 тест, но не мога да разбера защо.

Поствам кода, ако някой може да подскаже къде бъркам :)  http://pastebin.com/ppU0HBpJ

Тагове:
1
Programming Basics
annsta avatar annsta 305 Точки

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

3
Simeon.R avatar Simeon.R 198 Точки

Благодаря много, получи се. Аз гледам zero test 2 + 2 и след него 0 + 0 и си смятам разлика 2 blush

0
CvetanCankovVelikov avatar CvetanCankovVelikov 30 Точки

Ето ти още един начин за решаване : http://pastebin.com/KigpK6fU
П.С. Просто си я насосах и изненадващо даже за мен не гръмна никъде :D

0
Simeon.R avatar Simeon.R 198 Точки

И аз се чудех дали да не пробвам с масиви. Решението дава 100 точки, но пази последната максимална разлика. При вход

"

3
100
100
2
2
1
1

", твоето решение дава 2 разлика, а моето 196. В случая няма значение, но при подобен тест трябва да се види условието какво търси. 

1
petar.dimitrov.86 avatar petar.dimitrov.86 450 Точки

Simeon.R, да, на тези джъдж тестове не са задали стойности, които да пробват всякакви тънки моменти в условието. Добре е, че ще даде по-лесно 100, но пък така няма да се разбере дали напълно попълваш всички изисквания. Ти как успя да дадеш различна стойност за maxdiff? Тъй като аз се мъчих, мъчих, и накрая си викам, че първоначално му давам стойност 1, тъй като няма как да е по-малко от това, и от там нататък да си направих if-а за него като добавих като допълнително условие и че i от цикъла трябва да е >=2. Ето така ми изглежда крайния вариант, и в джъджа си е на 100% и с повечко въведени стойности пак се получава

http://pastebin.com/5GNF0GCd

0
Simeon.R avatar Simeon.R 198 Точки

Петър, аз си направих допълнителна променлива, която да пази най-голямата разлика. Първо смятам текущата разлика и след това проверявам дали текущата е по-голяма от миналата най-голяма разлика. Ако е така присвоявам стойността на текущата в допълнителната променлива. Това е кодът ми http://pastebin.com/9E6552t7  

2
mariastoilova avatar mariastoilova 6 Точки

Здравейте,

Ето го и моя код, дава грешки в разликата, но не при всички тестове. Не успявам да разбера къде ми е грешката. Ако някой може да помогне ще съм благодарна.

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

namespace Equal_Pairs
{
    class Program
    {
        static void Main(string[] args)
        {
            var n = int.Parse(Console.ReadLine());

            var couplesum1 = 0.0;
            var couplesum2 = 0.0;
            var maxdiff = 0.0;
            

            for (int i = 0; i < n; i++)
            {
                var firstnum = double.Parse(Console.ReadLine());
                var secondnum = double.Parse(Console.ReadLine());

                if (i == 0)
                {
                    couplesum1 = firstnum + secondnum;
                }
                else
                {
                    couplesum2 = firstnum + secondnum;

                    var diff = Math.Abs(couplesum2 - couplesum1);

                    if (diff > maxdiff)
                    {
                        maxdiff = diff;
                    }
                }
                
            }

            if (maxdiff == 0)
            {
                Console.WriteLine($"Yes, value={couplesum1}");
            }
            else
            {
                Console.WriteLine($"No, maxdiff={maxdiff}");
            }
        }
    }
}

 

0
freelylost avatar freelylost 2 Точки

Здравей, Мария,

Давам ти моето първо решение на Java, ще ти помогне с логиката поне: https://pastebin.com/jcnUufk1

Не е най-чистото възможно, но системата го прие и ми работи при тестовете. По-горе има и работещ вариант с масив в мой коментар.

Така като гледам, иначе, имаш липсваща логика във for цикъла и не форматираш накрая да излизат без .0 целите числа. Трябва ти отделна логика и ако n=1. Това е съвсем накратко анализа.

0
mariastoilova avatar mariastoilova 6 Точки

Благодаря, видях къде ми е проблема, най после успях да я реша със 100 точки.

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