Профил
Loading...
+ Нов въпрос
Filkolev avatar Filkolev 4428 Точки

В случая може да работиш с матрица, т.е. не назъбен масив, а двумерен.

Няма начин текущата матрица да го завъртиш, веднъж след като му зададеш размерности, не може да го преоразмеряваш. Трябва да създадеш нова матрица с нужните размери (т.е. обърнати размерности спрямо оригинала) и вече може да почнеш да я пълниш, което е и интересната част от задачата.

2
antonp1p2 avatar antonp1p2 17 Точки
Aко рaботя с мaтрицa товa ознaчaвa че нa някой редове ще имaм прaзни стойности и броя нa колоните в тaзи мaтрицa ще е дължинaтa нa нa нaй-дългaтa думa оттaм вече въртя в нови мaтрици редовете и колоните и когaто принтирaм мaхaм прaзните стойности... прaвилно ли съм рaзбрaл ?
0
18/05/2015 20:18:05
Filkolev avatar Filkolev 4428 Точки

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

0
enevlogiev avatar enevlogiev 1169 Точки

Има и вариант изобщо да не въртиш. Примерно подава ти се вход, че трябва да принтираш завъртяна на 180 или 540 градуса ... там където degrees % 360 == 180. Няма нужда да си правиш допълнителен масив, просто правиш следното.

Имаш един цикъл, който обикаля редовете отзад напред (matrix.GetLength(0) - 1) и друг, вложен в него, който прави същото за колоните, тогава пропъртито е GetLength(1) - 1. Принтираш matrix[row, col], и това ще сложи точно елемента, който ти трябва, най-горе вляво.
За другите два кейса може сам да си измислиш логиката, но те уверявам, че има такава : )

1
ZlatinDimitrov avatar ZlatinDimitrov 15 Точки

Здравейте,колеги.По-въпросната задача стигнах до завъртане на (90,180,270,360).Но тук нещо зациклих как при градуси,различни от тези да стигна пак до един от тях.Евентуално деление с остатък?

Идеи,препоръки и забележки ще са от полза.

http://pastebin.com/gWNR9mD6

0
enevlogiev avatar enevlogiev 1169 Точки

Да, точно деление с остатък ти трябва. Виж малко по-нагоре какво съм писал.

1
ZlatinDimitrov avatar ZlatinDimitrov 15 Точки

Точно този коментар съм пропуснал:)Сега вече е 100/100!Мерси колега enevlogiev!

0
antonp1p2 avatar antonp1p2 17 Точки

Ето го моето решение - http://pastebin.com/9C9xMV2w , дано е полезно на някой, дава 100/100 в Джъджа.

Толкова се мъчих с този назъбен масив, а то ставало изключително лесно с проста матрица. Мерси Kolev :)

 

0
19/05/2015 14:02:48
slavek avatar slavek 48 Точки

Докарвам я до 40 точки тази задача. Ето го и кода http://pastebin.com/LMsw0xf2. Не знам къде греша. Ако може малко помощ.

 

0
21/05/2015 22:25:17
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки
  •      Аз съм си направила swich case: 0, 1, 2, 3  -> за четирите позиции (0 , 90, 180, 270 degrees), ако градусите са повече от 360 с остатък от деление ги изчислявам в кой case попадат.
  •     От там нататък има 4 метода и обхождам матрицата по 4 различни начина според case.

п.с. правя матрица като хвана дължината на най-дългата дума и я направя за широчина, респ. височина на матрицата в в зависимост от градусите и пълня със спейс където не ми стига дължината на думата.
КОД за StringMatrixRotation

0
26/05/2015 09:50:48
LoKSET avatar LoKSET 160 Точки

И моето решение е доста подобно на повечето. Единствено за 180 градусовото въртене реших да разнообразя - не бях ривърсвал лист от листове :D

for (int i = 0; i < array.Count; i++)
                    {
                        array[i].Reverse();
                    }
array.Reverse();

0
zisov4eto avatar zisov4eto 19 Точки

Моето решение се различава от тези, които видях тук за това ще дам линк ако на някой му е интересно.

Не е най-качественето като бързодействие. Правят се някои излишни стъпки - наясно съм. Както казах качвам го само, защото е малко по различно от тези, които видях.

https://github.com/zisov4eto/SoftUniRepository/tree/master/C%23/Exams/ExamProblemsPractice/02.StringMatrixRotation

1
17/05/2016 22:17:54