Задача Submit to Matrix Numbers

Привет, имам проблем със следната задача : https://judge.telerikacademy.com/problem/00309matrixnumbers
Проблема е, че judge ми приема решението като IR и не си получвам точките.
Ето и снимка какво се изисква като вход и изход.

Качвам и снимка с решението на локалните тестове понеже качването на решения май е забраенно, но ако се налага ще кача и кода

Привет,
Ако качиш и кода, ще помогне.

Здравей, ето и кода:
https://pastebin.com/k3dw7Vkg

1 Like

Зрадсти,

Изкарваш допълнителен интервал след последното число.
Трябва да обърнеш последователността на j и ’ '.

1 Like

Благодаря за бързите отговори, този път тестовете минаха успешно, следващия път ще съм по-наблюдателен.

Здравейте,

ето моят код: https://pastebin.com/c2TC2n81

Успявам да разпечатам матрицата, но не и в патерна, който се изисква. Създадох допълнителна променлива result, която да се иницира на нов ред и да е с 1 по-голямо от последната предишна, но не се получава.

Може ли насоки?

Благодаря!

Здравей,

Забележи подсказката в условието: Use two nested loops.

Отне ми доста време ровене и аз да го разбера:

  1. Започваме с генералния for loop - точно както си го направил.
  2. В него единствено инициализираме int j, който ще ползваме по-късно, а най-накрая (преди затварянето на loop-a) слагаме println, което ще ни създаде бъдещите редове, както и ти си направил.
  3. Първи nested for loop:

for (j = i; j <= N; j++)

В него принтираме с print (j + " ").
Дотук при написване на 3, получаваме:

1 2 3
2 3
3

Сега задачата е да запълним този празен триъгълник с нарастващи цифри на въведеното число.

  1. Втори nested for loop:

for(int k = i-1; k >= 1; k–) *Edit: На k са два минуса, просто не се показват добре

В него имаме пак print (j + " "), а под него имаме j++;

Така при написване на 3, получаваме:

1 2 3 (Вторият for loop не се активира все още, защото k = i-1 = 0)
2 3 4 (Генералният for loop е вече на i = 2; -> вторият nested loop се активира веднъж и добавя N+1 = 4. Тази стойност се взима от int j, който инициализирахме по-рано. Вероятно** защото след последния трети iteration на първия nested loop, increment expression-а j++ се активира като финална стъпка и макар nested loop-a да прекъсва, защото j <= N вече не е валиден, то variable-a int j от генералния loop се обновява още веднъж.)
3 4 5 (Първият nested loop се активира вече веднъж, а вторият два пъти, като j++ вече ни влиза на помощ.)

Лично аз намерих много примери на подобни матрици в Интернет, чиято логика вечно беше недоизказана и просто приета за даденост. Хубаво е човек на този етап да има достъп до по-подробни обяснения, за да може умът да свикне да размишлява по този начин - заради което и си позволявам по-обширното ми разяснение.

Успех!

Поздрави,
Петър

6 Likes

https://pastebin.com/dcChJyiv - преработих, но пак не върви като хората…

Здравей,

Ето решението: https://github.com/PetarBivolarski/Telerik-Academy/blob/master/Workshop%203%20-%20Loops/Submit%20to%20Matrix%20Numbers

Поздрави,
Петър