infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Lup Vasile din Noiembrie 24, 2013, 12:03:59



Titlul: Spirala
Scris de: Lup Vasile din Noiembrie 24, 2013, 12:03:59
Cum ma pot deplasa in spirala intr-o matrice?


Titlul: Răspuns: Spirala
Scris de: FMI Razvan Birisan din Noiembrie 24, 2013, 12:23:17
Asa:
Cod:
# include <iostream>
using namespace std;

int mat[11][11];

int main()
{
    short n,i,k,x=0;
    cout << "n=";
    cin >> n;
    for( k = 1 ; k <= n/2 + 1 ; ++k )
    {
        //Pasul 1
        for( i = k ; i <= n - k + 1 ; ++i )
            mat[k][i] = ++x;
        //Pasul 2
        for( i = k + 1 ; i <= n - k + 1 ; ++i )
            mat[i][n-k+1] = ++x;
        //Pasul 3
        for( i = n - k ; i >= k  ; -- i )
            mat[n-k+1][i] = ++x;
        //Pasul 4
        for( i = n - k ; i >= k + 1  ; --i )
            mat[i][k] = ++x;
    }
    for( i = 1 ; i <= n ; ++i , cout << '\n')
        for( k = 1; k <= n ; ++k )
            cout << mat[i][k] << ' ';
    return 0;
}