Здравейте, някой може ли да ми даде насоки, които биха могли да ми помогнат при решаването на задачата, понеже не знам откъде да тръгна, благодаря.
Разделяй задачата на две части, добявай 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;
}
Приложено ти изпращам линк към моето решение, ако решиш да го видиш.
Поздрави
Супер бързо отговорихте Благодаря много и аз вчера стигнах до това заключение Все пак благодаря за потвърждението.
Здравейте,
Аз я направих доста махленски и ми се струва, че трябва да има по-хубаво решение.
Прикачам си кода: 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] + " ");
}
}
}