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

(Memory limit)

Здравейте, защо ми дава това на решение на задачата в Judge 90/100 

Задачата е:5. Еднакви суми на леви и десни позиции
Напишете програма, която чете от конзолата две петцифрени цели числа в диапазона от 10000 до 99999.
Първото число винаги ще бъде по-малко от второто. Да се намерят и отпечатат на конзолата, разделени с
интервал, онези числа, които се намират между прочетените от конзолата числа и отговарят на следните
условия:
 сумите от двете най-десни и двете най-леви цифри на проверяваното число да са равни
 ако сумите са различни към по-малката от тях се прибавя средната цифра, на проверяваното число и
получената нова сума се сравнява с другата сума. Ако те са равни числото се отпечатва.
Ако няма числа, отговарящи на условията на конзолата не се извежда резултат.

05. Equal Sums Left Right Position 
 

решението ми е:

using System;

namespace _05._Equal_Sums_Left_Right_Position
{
    class Program
    {
        static void Main(string[] args)
        {
            int n1 = int.Parse(Console.ReadLine());
            int n2 = int.Parse(Console.ReadLine());
            for (int i = n1; i <= n2; i++)
            {
                int sumLeft = 0;
                int sumRight = 0;
                int midle = 0;
                string current = i.ToString();
                for (int j = 0; j < current.Length; j++)
                {
                    int currentDig = int.Parse(current[j].ToString());
                    if (j == 0 || j == 1)
                    {
                        sumLeft += currentDig;
                    }
                    else if (j == 3 || j == 4)
                    {
                        sumRight += currentDig;
                    }
                    else if (j == 2)
                    {
                        midle += currentDig;
                    }
                }
                if (sumLeft < sumRight)
                {
                    sumLeft += midle;
                }
                else if (sumLeft > sumRight)
                {
                    sumRight += midle;
                }
                if (sumLeft == sumRight)
                {
                    Console.Write(i + " ");
                }
            }
        }
    }
}

Условието на задачата е 10000-99999 сложих и иф с който да ги огранича да не се въвеждат по-малки или по-големи числа и резултатът е същия.

Тагове:
0
C# OOP Basics
prohause avatar prohause 233 Точки

Много ненужни цикли. Винаги имаш 5 цифренно число. 

0