Професионална програма
Loading...
+ Нов въпрос
nadejda91iv avatar nadejda91iv 11 Точки

From Left to The Right - Data Types and Variables - More Exercise

Здравейте, може ли малко помощ за решението на тази задача  - https://judge.softuni.bg/Contests/Practice/Index/1271#1

Стигнах до тук, но нямам идея как да продължа   - 

using System;
using System.Linq;

namespace From_Left_to_The_Right
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            
           
            for (int i = 0; i < n; i++)
            {
                int[] array = Console.ReadLine()
                  .Split(" ")
                  .Select(int.Parse)
                  .ToArray();
                int leftNumber = array[0];
                int rightNumber = array[1];
                if(leftNumber > rightNumber)
                {
                    Console.WriteLine(leftNumber);
                }
                else
                {
                    Console.WriteLine(rightNumber);
                }

            }

        
        }
    }
}
 

Тагове:
0
Fundamentals Module
MartinBG avatar MartinBG 3828 Точки

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

using System;
using System.Linq;

namespace From_Left_to_The_Right
{
    internal static class Program
    {
        private static void Main()
        {
            var n = int.Parse(Console.ReadLine());
            
            for (var i = 0; i < n; i++)
            {
                var array = Console.ReadLine()
                    .Split(" ")
                    .Select(long.Parse)
                    .ToArray();
                
                var leftNumber = array[0];
                var rightNumber = array[1];
                
                Console.WriteLine(leftNumber > rightNumber 
                    ? SumDigits(leftNumber) 
                    : SumDigits(rightNumber));
            }
        }

        private static int SumDigits(long number)
        {
            var sum = 0;
            
            while (number != 0)
            {
                sum += (int)(number % 10);
                number /= 10;
            }
            
            return Math.Abs(sum);
        }
    }
}

 

Логиката за намиране на по-голямото число може да бъде разписана и с LINQ:

            for (var i = 0; i < n; i++)
            {
                var sum = Console.ReadLine()
                    .Split(" ")
                    .Select(long.Parse)
                    .OrderByDescending(num => num)
                    .Take(1)
                    .Select(SumDigits)
                    .First();
                
                Console.WriteLine(sum);
            }

 

1
25/01/2021 04:43:13