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
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?
pattern1.cpp:57:2: error: stray '\302' in program
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă