Професионална програма
Loading...
+ Нов въпрос
Ivan.N.Iliev avatar Ivan.N.Iliev 44 Точки

Можеш да използваш този вариант:

string input = Console.ReadLine();
long[] numbers = input.Split().Select(long.Parse).ToArray();

или този, който е без масиви и LINQ

string numbers = Console.ReadLine();

            string firstNumAsString = string.Empty;
            string secondNumAsString = string.Empty;
            bool isFirstNum = true;
            for (int i = 0; i < numbers.Length; i++)
            {
                if (isFirstNum && numbers[i] != ' ')
                {
                    firstNumAsString += numbers[i];
                }
                else if (!isFirstNum && numbers[i] != ' ')
                {
                    secondNumAsString += numbers[i];
                }
                else if (numbers[i] == ' ')
                {
                    isFirstNum = false;
                }
            }

            int firstNumber = int.Parse(firstNumAsString);
            int secondNumber = int.Parse(secondNumAsString);

0
VasilKotsev avatar VasilKotsev 830 Точки

Взимаш ги като масив от стрингове и ги parse-ваш.

using System.Linq;

int[] numbers = Console.ReadLine()
               .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
               .Select(x => int.Parse(x))
               .ToArray();

 

0
Golbarg200 avatar Golbarg200 3 Точки

Благодаря!

1
Ivaylo.apostolov avatar Ivaylo.apostolov 12 Точки

Здравейте

За същата задача моля за помощ.

От примерите в doc - а всички ми дават верни отговори, но Съдията ми пише  25/100.

https://pastebin.com/bSVzP29x

Предварително благодаря за помоща!

0
NataliyaZhekova avatar NataliyaZhekova 0 Точки

Ако стринга съдържа отрицателно число -2222 -1111 , няма да влезе в този код  while (firstNumber > 0). В темата се разисква да се ползва Math.Abs(). Въпреки това аз съм го докарала до 50/100 . Ще ми е любопитно да разбера решение със 100 /100.

0
plus1pxl avatar plus1pxl 16 Точки

Можеш да четеш string и да вземеш substring преди и след " "

                string input = Console.ReadLine();
                string stringBeforeSpace = input.Substring(0, input.IndexOf(" "));
                string stringAfterSpace = input.Substring(input.IndexOf(" ") +1);

след това парсваш левия и десния substring

                long numLeft = long.Parse(stringBeforeSpace);
                long numRight = long.Parse(stringAfterSpace);

 

И не забравяй вътре в проверките си, да обърнеш числата Left и Right към положителни с Math.Abs(), или рискуваш да не вземеш максимален брой точки в Judge.

1
31/01/2019 19:45:05
MVassileva avatar MVassileva 2 Точки

Не трябва ли само получените суми на числата да се отпечатат по абсолютни стойности?

0
plus1pxl avatar plus1pxl 16 Точки

Няма да има разлика в крайния резултата при двата подхода.

0
MVassileva avatar MVassileva 2 Точки

При сравнение на 2000 и -3000 по-голямото число е 2000.

При сравнение по абсолютни стойности ще даде, че 3000 (бившето -3000) е по-голямото число.

Така че няма как да е едно и също дали проверяваш по абсолютни стойности или по реалните стойности на числата.

0
Elena123456 avatar Elena123456 235 Точки

Здравейте, искам да попитам дали е възможно тази задача да се реши с материала до тук, т.е без масиви, списъци, стрингове, речници, обекти или класове. Или евентуално след известно време отново да се върна на нея. Задачата е поместена в темата "Data types and variables", т.е почти веднага след бейсик нивото .

Ето общата ми логика, но нищо- дава, че входните данни не са в правилния формат.

using System;

namespace TrainingWithData2
{
    class MainClass
    {
        public static void Main()
        {

            int lineNumbers = int.Parse(Console.ReadLine());

            for (int i = 0; i < lineNumbers; i++)
            {
                int num1 = int.Parse(Console.ReadLine()); // осъзнавам, че така няма как да стане четенето на две числа на един ред, но друг начин не сме учили.

                int num2 = Console.ReadLine();


                int digit1 = 0;
                int sum1 = 0;
                while (num1 > 0)
                {
                    digit1 = num1 % 10;
                    num1 = num1 / 10;
                    sum1 = sum1 + digit1;

                }

                int digit2 = 0;
                int sum2 = 0;
                while (num2 > 0)
                {
                    digit2 = num2 % 10;
                    num2 = num2 / 10;
                    sum2 = sum2 + digit2;

                }

                if (sum1 > sum2)
                {
                    Console.WriteLine($"{sum1}");
                }

                else if (sum2 > sum1)
                {
                    Console.WriteLine($"{sum2}");
                }
                else
                {
                    Console.WriteLine($"{sum1}");
                }

                }





            }
        }
    }
 

1
nickwork avatar nickwork 657 Точки

Четеш входа като стринг "10 20", итерираш през този стринг и на всяка итерация записваш резултата в една променлива и гледаш дали си стигнала до чарът празен спейс...ако да започваш да пълниш резултата в друга променлива, накрая парсваш двете променливи към две числови променливи и ги обработваш както си искаш.

using System;

namespace TrainingWithData2
{
    class MainClass
    {
        public static void Main()
        {

            int lineNumbers = int.Parse(Console.ReadLine());

            for (int i = 0; i < lineNumbers; i++)
            {
                string numbers = Console.ReadLine(); // осъзнавам, че така няма как да стане четенето на две числа на един ред, но друг начин не сме учили.

                string fistNumberAssString = string.Empty;
                string secondNumberAssString = string.Empty;

                bool isFirstNumberFound = false;

                for (int j = 0; j < numbers.Length; j++)
                {
                    char currentDigit = numbers[j];

                    if (isFirstNumberFound == false)
                    {
                        if (currentDigit == ' ')
                        {
                            isFirstNumberFound = true;
                        }
                        else
                        {
                            fistNumberAssString += numbers[j];
                        }
                    }
                    else
                    {
                        secondNumberAssString += currentDigit;
                    }
                }

                int num1 = int.Parse(fistNumberAssString);
                int num2 = int.Parse(secondNumberAssString);

                int digit1 = 0;
                int sum1 = 0;
                while (num1 > 0)
                {
                    digit1 = num1 % 10;
                    num1 = num1 / 10;
                    sum1 = sum1 + digit1;

                }

                int digit2 = 0;
                int sum2 = 0;
                while (num2 > 0)
                {
                    digit2 = num2 % 10;
                    num2 = num2 / 10;
                    sum2 = sum2 + digit2;
                }

                if (sum1 > sum2)
                {
                    Console.WriteLine($"{sum1}");
                }

                else if (sum2 > sum1)
                {
                    Console.WriteLine($"{sum2}");
                }
                else
                {
                    Console.WriteLine($"{sum1}");
                }
            }
        }
    }
}

1
15/06/2020 15:08:37
Elena123456 avatar Elena123456 235 Точки

Благодаря за разясненията! :)

0
rikishi58 avatar rikishi58 -1 Точки

play store app for pc apps which are developed by the developers will be available in the Google Play Store Download for PC. You can get access to a lot of apps for free. Play Store for PC also has a collection of paid applications.

-1
AntonDelev avatar AntonDelev 1 Точки

Колеги, моля някой да ми каже какво греша. Правя уговорката и аз, че решавам задачата със знанията от материала взет до тук.

Нулевите тестове са ок, но Judge ми дава на три от тестовете "Runtime error". Опитах със всички възможни варианти, int, long и т.н. но резултата е един и същ. Интересното е, че разрешеното време е 0.100ms и паметта е 16.00 MB. на мен всички тестове са ми под тези граници!?! Ето и решението:

https://pastebin.com/Hxqf7BPR

0
doncho9292 avatar doncho9292 2 Точки

Ето едно решение 100/100 и от мене, сравнително кратко е, отне ми към 6 часа, енджой :D - https://pastebin.com/YtLw6ZmU

0
24/03/2021 01:01:18
aboqnskiq1 avatar aboqnskiq1 1 Точки

 

https://www.pastebin.com/CCLVRvsU

100/100

0
18/04/2021 14:33:06
vvsvvs avatar vvsvvs 4 Точки

Ето и моето решение с помоща на StringBuilder (не е задължително с този клас - може и със string) и без преобразуване в числа (освен при търсенето на по-голямото от двете числа). Съдията ми даде 100/100 https://pastebin.com/CpE2rtkX

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