Софтуерно Инженерство
Loading...
Vesolini avatar Vesolini 6 Точки

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

Здравейте банда ! Може ли да ми помогнете да открия грешката си - съдията ми дава 25/100, а честно казано не виждам къде греша ?

https://pastebin.com/dbCkG80Y 

 

2.From Left to The Right

You will receive number which represent how many lines we will get as an input. On the next N lines, you will receive a string with 2 numbers separated by single space. You need to compare them. If the left number is greater than the right number, you need to print the sum of all digits in the left number, otherwise print the sum of all digits in the right number.

Examples

Input

Output

2

1000 2000

2000 1000

2

2

4

123456 2147483647

5000000 -500000

97766554 97766554

9999999999 8888888888

46

5

49

90

Тагове:
0
Fundamentals Module 26/05/2019 16:27:46
Lachezar.Ivanov avatar Lachezar.Ivanov 14 Точки

Здравейте,

ето едно решение без масиви, което е дълго, но работи:

        {
            int linesNumber = int.Parse(Console.ReadLine());

            for (int i = 0; i < linesNumber; i++)
            {
                string input = Console.ReadLine();
                string leftNumber = "";
                string rightNumber = "";
                int count = 0;

                for (int j = 0; j < input.Length - 1; j++)
                {
                    char symbol = input[j];
                    if (symbol != ' ')
                    {
                        leftNumber += symbol;
                        count++;
                    }
                    else
                    {
                        break;
                    }
                }
                for (int k = count + 1; k < input.Length; k++)
                {
                    char symbol = input[k];
                    rightNumber += symbol;
                }
                long left = long.Parse(leftNumber);
                long right = long.Parse(rightNumber);

                long maxNumber = Math.Max(left, right);
                long sum = 0;
                while (Math.Abs(maxNumber) > 0)
                {
                    sum += maxNumber % 10;
                    maxNumber /= 10;
                }
                Console.WriteLine(Math.Abs(sum));
            }
        } 
 

0
Nay46 avatar Nay46 0 Точки

Ето и едно мое решение , което ми дава 100 от 100 , дано е полезно .

using System;

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

            for (int i = 1; i <= inputNumber; i++)
            {
                string input = Console.ReadLine();
                string stringBeforeSpace = input.Substring(0, input.IndexOf(" "));
                string stringAfterSpace = input.Substring(input.IndexOf(" ") + 1);
                long numLeft = ( long.Parse(stringBeforeSpace));
                long numRight = ( long.Parse(stringAfterSpace));

                long maxNumber = Math.Max(numLeft, numRight);
                long sum = 0;
                while (Math.Abs(maxNumber) > 0)
                {
                    sum += maxNumber % 10;
                    maxNumber /= 10;
                }
                Console.WriteLine(Math.Abs(sum));

            }
            
        }
    }
}
 

0
fanya.karamfilova avatar fanya.karamfilova 4 Точки

Необходимо е да бъдат заменени типовете от long на BigInteger, за да се получи резултат 100/100.

Особеното е, че при BigInteger не мпже да се използват Math Method. 

Ако искаме да получим абсолютната стойност на дадена променлива (input) синтаксиса е следният:

BigInteger absoluteValue = BigInteger.Abs(input)

0