Technology Fundamentals with C# - януари 2019 - 02. From Left to The Right
Здравейте, не виждам как може да се направи числата да се четат на един ред, ако някой знае моля да помага...
Здравейте, не виждам как може да се направи числата да се четат на един ред, ако някой знае моля да помага...
Интересни и полезни решения и макар, че темата е стара, ще се включа с моите примери. Основно съм разделила условието на 2 възможности: Едната е двете числа да са цели, втората, която е по-трудна, дава възможност за плаваща запетая. Когато се събират цифрите на число тип double, това става чрез конвертиране в стринг. Още в началото съм закоментирала по няколко различни начина входът от конзолата input да се разцепи на 2 отделни числа чрез разделител. Всички закоментирани начини работят и точките са 100/100.
...
Първи начин за целочислен тип:
int lines = int.Parse(Console.ReadLine());
long sumDigits = 0;
while (lines > 0)
{
string[] input = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries);
long firstN = long.Parse(input[0]);
long secondN = long.Parse(input[1]);
//string firstNumber = input[0];
//string secondNumber = input[1];
//long.TryParse(firstNumber, out long firstN);
//long.TryParse(secondNumber, out long secondN);
if (firstN > secondN)
{
firstN = Math.Abs(firstN);
while (firstN > 0)
{
sumDigits += firstN % 10;
firstN /= 10;
}
}
else
{
secondN = Math.Abs(secondN);
while (secondN > 0)
{
sumDigits += secondN % 10;
secondN /= 10;
}
}
Console.WriteLine(sumDigits);
sumDigits = 0;
lines--;
}
...
Втори начин за числа с плаваща запетая:
int lines = int.Parse(Console.ReadLine());
double sumDigits = 0;
while (lines > 0)
{
string input = Console.ReadLine();
//several other disolvings:
//string[] input = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries);
//char[] separator = {' '};
//string[] numbers = input.Split(separator);
//string firstNumber = string.Split(input[0], ' ');
string[] numbers = input.Split(' ');
string firstNumber = numbers[0];
string secondNumber = numbers[1];
double.TryParse(firstNumber, out double firstN);
double.TryParse(secondNumber, out double secondN);
if(firstN > secondN)
{
string firstNumer = firstN.ToString();
for (int i = 0; i < firstNumber.Length; i++)
{
int.TryParse(Convert.ToString(firstNumber[i]), out int digit);
sumDigits += digit;
}
}
else
{
string secondNumer = secondN.ToString();
for (int i = 0; i < secondNumber.Length; i++)
{
int.TryParse(Convert.ToString(secondNumber[i]), out int digit);
sumDigits += digit;
}
}
Console.WriteLine(sumDigits);
sumDigits = 0;
lines--;
}