Софтуерно Инженерство
Loading...
+ Нов въпрос
chrisi2712 avatar chrisi2712 246 Точки

Помощ със задачата Nested Loops - Equal Sums Left Right Position

Здравейте, имам проблем със задачата. Джъдж ми дава 90/100 със Memory limit. Може ли някой да ми помогне да си открия грешката. Знам, че има и доста по-късо решение с процентно деление, но ми се иска да разбера къде греша в този случей. Ето го и кога:

using System;

namespace EqualSumsLeftRightPosition
{
    class Program
    {
        static void Main(string[] args)
        {
            int numberOne = int.Parse(Console.ReadLine());
            int numberTwo = int.Parse(Console.ReadLine());

            for (int currentNumber = numberOne; currentNumber <= numberTwo; currentNumber++)
            {
                int leftSum = 0;
                int rightSum = 0;

                string currentNumberAsString = currentNumber + ""; // "12345"

                for (int leftPosition = 0; leftPosition < 2; leftPosition++)
                {
                    int leftNumber = int.Parse(currentNumberAsString[leftPosition] + "");
                    leftSum += leftNumber;
                }
                for (int rightPosition = 0; rightPosition < 2; rightPosition++)
                {
                    int rightNumber = int.Parse(currentNumberAsString[currentNumberAsString.Length - 1 - rightPosition] + "");
                    rightSum += rightNumber;
                }

                bool areTheyEqual = rightSum == leftSum;
                if (areTheyEqual)
                {
                    Console.Write($"{currentNumber} ");
                }
                else
                {
                    int thirdDigit = (currentNumber / 100) % 10;

                    if (rightSum < leftSum)
                    {
                        rightSum += thirdDigit;
                    }
                    else
                    {
                        leftSum += thirdDigit;
                    }

                    if (leftSum == rightSum)
                    {
                        Console.Write($"{currentNumber} ");
                    }
                }
            }
        }
    }
}

Тагове:
0
Основи на програмирането 18/02/2019 18:11:02
iGeorg1ev avatar iGeorg1ev 150 Точки

Здравей,

Пусни го пак ще мине. Един път ми даде Лимит Памет и после мина.

Иначе стринговите операции са бавнички и взимат памет, предполагам че това е проблема. Ето вариант без стрингове:

https://pastebin.com/3qQWGECq
 

Иво

0
18/02/2019 18:12:41
badsector avatar badsector 18 Точки

Същия проблем имам и аз. Пуснах го 3 пъти снощи, когато спря да се отваря сайта и реших, че е заради това, но днес пак го пускам и отново дава същия проблем.

1