Informatică, întrebare adresată de iplay80I, 8 ani în urmă

Ma poate ajuta cineva cu aceasta problema?
problema #1952 pe pbinfo

Cerința
Se dă un număr natural n. Să se genereze o matrice pătratică de dimensiune 2n-1, după următoarele reguli:

elementul din mijlocul matricii este egal cu n
elementele de pe linia mediană și cele de pe coloana mediană (exceptând elementul din mijlocul matricii) sunt nule
folosind linia mediană și coloana mediană, se împarte matricea în alte 4 matrici care se generează similar, dar au dimensiunea 2n-1-1.
Date de intrare
Programul citește de la tastatură numărul n.

Date de ieșire
Programul va afișa pe ecran matricea generată.

Restricții și precizări
1 ≤ n ≤ 9
Exemplu
Intrare

3
Ieșire

1 0 1 0 1 0 1
0 2 0 0 0 2 0
1 0 1 0 1 0 1
0 0 0 3 0 0 0
1 0 1 0 1 0 1
0 2 0 0 0 2 0
1 0 1 0 1 0 1
Help

Răspunsuri la întrebare

Răspuns de pmarian98
1

#include <iostream>

#include <cmath>

using namespace std;

int m[511][511];

// L dimensiunea laturii

// scriem in m o matrice centrata in (l, c)

// n este val care se scrie in centru

void pat(int n, int L, int l, int c) {

 L /= 2;

 m[l][c] = n;

 if (n > 1) {

   int semiLatura = L / 2 + 1;

   pat(n - 1, L, l - semiLatura, c - semiLatura);

   pat(n - 1, L, l - semiLatura, c + semiLatura);

   pat(n - 1, L, l + semiLatura, c - semiLatura);

   pat(n - 1, L, l + semiLatura, c + semiLatura);

 }

}

int main() {

 int n;

 cin >> n;

 int L = pow(2, n) - 1;

 pat(n, L, L / 2, L / 2);

 for(int i = 0; i < L; i++) {

   for(int j = 0; j < L; j++)

     cout << m[i][j] << ' ';

   cout << '\n';

 }

 return 0;

}


Dilau420: Ai luat 100 cu sursa asta?
Dilau420: Da
Dilau420: OO
Dilau420: Mersi atunci
Dilau420: Cupla
iplay80I: Cum iti da suta ca mie nu imi da:
iplay80I: pattern1.cpp:55:2: error: stray '\240' in program
pattern1.cpp:57:2: error: stray '\302' in program
pmarian98: le reinlocuiesti
pmarian98: mie mi-a dat 100
Alte întrebări interesante