Merging and Squashing

preparation

#1

Здравейте, някой може ли да ми даде насоки, които биха могли да ми помогнат при решаването на задачата, понеже не знам откъде да тръгна, благодаря. :slight_smile:


#2

Разделяй задачата на две части, добявай Merging Numbers в един Array и Squashing Numbers във втори Array.

Ако искаш, насоки за самите формули кажи.

Принтирай ги в реда по условие.

Успех


#3

Привет на всички,
Това ми е първият пост. Та се извинявам, ако не е един от най-добрите.

Аз вече се пробвах да реша задачата… но на последните тестове данни ми дава грешка
using System;
using System.Collections.Generic;
using System.Linq;

namespace SOmeDemos
{
class Program
{
static void Main(string[] args)
{

        int counter = int.Parse(Console.ReadLine());
        List<int> nums = new List<int>();

        for (int i = 0; i < counter; i++)
        {
            int input = int.Parse(Console.ReadLine());

            int a =( input /10)%10 ;
            int b = input % 10;

            nums.Add(a);
            nums.Add(b);
        }

        List<string> mergedNums = new List<string>();
        
        for (int i = 1; i < nums.Count-1; i+=2)
        {
            string a = nums.ElementAt(i) + "";
            string b = nums.ElementAt(i+1) + "";
            string c = a + b;
            mergedNums.Add(c);
        }

        foreach (string mNum in mergedNums)
        {
            Console.Write(mNum+" ");
        }

        List<int> squashingNums = new List<int>();
        List<string> squashingNumsAsStr = new List<string>();

        for (int i = 0; i < nums.Count; i++)
        {
            squashingNums.Add(nums.ElementAt(i));
        }

        for (int i = 1; i < squashingNums.Count - 1; i += 2)
        {
            int a = squashingNums.ElementAt(i-1);
            int b = squashingNums.ElementAt(i);
            int c = squashingNums.ElementAt(i + 1);
            int d = squashingNums.ElementAt(i + 2);
                            
            int middle = b + c;
            string begining = a.ToString();
            string strMiddle = middle.ToString();
            string end = d.ToString();

            string sqNum = begining + strMiddle + end;
            squashingNumsAsStr.Add(sqNum);
        }
        Console.WriteLine();

        foreach (string sqNum in squashingNumsAsStr)
        {
            Console.Write(sqNum+" ");
        }

          
        
    }
}

}


#4

Добър вечер колега,
проблема според мен ти идва в testcase със squashing при midnumber, когато числото ти е например 10+4 = 14, трябва да изпишеш 4.

Според мен напиши проверка след “int middle = b+c”
if(middle > 10)
{
middle = middle%10;
}
else if(middle == 10)
{
middle = 0;
}

Приложено ти изпращам линк към моето решение, ако решиш да го видиш.

Поздрави


#5

Супер бързо отговорихте :slight_smile: Благодаря много и аз вчера стигнах до това заключение :wink: Все пак благодаря за потвърждението.


#6

Здравейте,

Аз я направих доста махленски и ми се струва, че трябва да има по-хубаво решение.

Прикачам си кода: https://pastebin.com/JJ3YrU7f