Merging and Squashing

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

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

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

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

Успех

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

Аз вече се пробвах да реша задачата… но на последните тестове данни ми дава грешка
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+" ");
        }

          
        
    }
}

}

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

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

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

Поздрави

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

Здравейте,

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

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

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

N_1 = int(input())
N_2 = int(input())

list1 = list(str(N_1))
list2 = list(str(N_2))

a = list1[0]
b = list1[1]
x = list2[0]
y = list2[1]

middle = int(b) + int(x)

print(b + x )
print(a + str(middle) + y)

import java.util.*;

public class Main {
public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
    int N = scanner.nextInt();
    int[] numbers = new int[N];

    for (int i = 0; i < N; i++) {
        numbers[i] = scanner.nextInt();
    }
    scanner.close();

    int[] mergedNumbers = new int[N - 1];
    int[] squashedNumbers = new int[N - 1];

    for (int i = 0; i < N - 1; i++) {
        String first = String.valueOf(numbers[i]);
        String second = String.valueOf(numbers[i + 1]);

        mergedNumbers[i] = Integer.parseInt(first.charAt(1) + "" + second.charAt(0));

        int sum = Integer.parseInt(first.charAt(1) + "") + Integer.parseInt(second.charAt(0) + "");
        if( sum >= 10)
            sum = sum % 10;
        squashedNumbers[i] = Integer.parseInt(first.charAt(0) + "" + sum + second.charAt(1));
    }

    for (int i = 0; i < N - 1; i++) {
        System.out.print(mergedNumbers[i] + " ");
    }
    System.out.println();

    for (int i = 0; i < N - 1; i++) {
        System.out.print(squashedNumbers[i] + " ");
    }
}

}