|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Andrew Ezhguroff 2:5020/400 05 Mar 2003 03:11:09 To : Mike Galushkin Subject : Re: матрица по спирали -------------------------------------------------------------------------------- Привет! "Mike Galushkin" <Mike.Galushkin@p4.f149.n5055.z2.fidonet.org> сообщил(а): MG> Hе подскажет ли уважаемый Олл, как забить квадратную матрицу данными по MG> спирали? Hапример, так. // Буфер, в который записывается матрица int Matrix[100][100]; // Таблица приращений x и y для 4-х направлений int Delta[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; // Генерация матрицы размером N*N void Gen_Matrix(int N){ int x=0; int y=0; int Count = 1; // Последовательно заполняем квадраты, начиная с наружнего for(int Len=(N-1); Len>0; Len-=2){ // Заполняем очередной квадрат for(int Index=0; Index<4; Index++){ for(int Tmp=0; Tmp<Len; Tmp++){ Matrix[y][x]=Count; y+=Delta[Index][0]; x+=Delta[Index][1]; Count++; } } // Переходим к следующему квадрату x++; y++; } // Если размер нечетный, заполняем центральное поле if(Count==N*N)Matrix[y][x]=Count; } С уважением, Андрей. -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/64887c6e86b0.html, оценка из 5, голосов 60
|