Loading...
krasizorbov avatar krasizorbov 548 Точки

06. Equal Sums Left Right Position. Programming basics excercises

Здравейте,

Някой би ли ми помогнал? Програмата работи и отговорите са верни но ми дава memory limit и поради това имам 80 от 100.

Може би заради преобразуването. Явно има по интелигентен начин.

Ето и кода:

using System;

namespace Equal_Sum
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1 = int.Parse(Console.ReadLine());
            int num2 = int.Parse(Console.ReadLine());

            int sumLeft = 0;

            int sumRight = 0;

            int middle = 0;

            for (int i = num1; i <= num2; i++)
            {
                for (int j = 0; j < i.ToString().Length; j++)
                {
                    char first = i.ToString()[j];

                    string sub = first.ToString();

                    int num3 = 0;

                    bool number_digit = Int32.TryParse(sub, out num3);

                    if (number_digit)
                    {
                        if (j == 0 || j == 1)
                        {
                            sumLeft = sumLeft + num3;
                        }
                        else if (j == 2)
                        {
                            middle = num3;
                        }
                        else if (j == 3 || j == 4)
                        {
                            sumRight = sumRight + num3;
                        }
                    }
                }
                if (sumLeft < sumRight)
                {
                    sumLeft = sumLeft + middle;

                    if (sumLeft == sumRight)
                    {
                        Console.Write("{0} ",i);
                    }
                }
                else if (sumLeft > sumRight)
                {
                    sumRight = sumRight + middle;

                    if (sumLeft == sumRight)
                    {
                        Console.Write("{0} ", i);
                    }
                }
                else if (sumLeft == sumRight)
                {
                    Console.Write("{0} ", i);
                }

                sumLeft = 0;
                sumRight = 0;
                middle = 0;

            }
        }
    }
}

 

Тагове:
0
Module: C# Advanced
AlucardDracula avatar AlucardDracula 416 Точки

Може ли условие? че така едва ли някой ще ти помогне.
И когато споделяш код, използвай pastebin, dotnetfiddle или подобни страници за споделяне на код.

0
krasizorbov avatar krasizorbov 548 Точки

Ето това е условието...

Благодаря.

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

0
AlucardDracula avatar AlucardDracula 416 Точки

ако добавиш и примерен вход и изход ще е великолепно.

 

0
krasizorbov avatar krasizorbov 548 Точки

Вход:

10000
10100

Изход:

10001 10010 10100

0
DimitarTsvetkov avatar DimitarTsvetkov 1 Точки

I think you are missing "=" in the second for loop (int j = 0; j < i.ToString().Length; j++). At the moment is "<" and it has to be "<=". Sorry for not responding in Bulgarian. I don't and I can't have Cyrilic on this computer. I hope that helps :)

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