fbpx

Problema #1894 – Floarea – Rezolvari PBInfo

de Mihai-Alexandru

O floare abia plantată se notează cu 0. În fiecare lună, aceasta crește cu un rând de petale, separate prin spațiu, notate cu cifra vârstei sale in acea lună.

Cerința

Se dă un număr natural n. Construiți și afișați o matrice ce reprezintă floarea dupa n luni.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran matricea construită, reprezentând floarea dupa n luni.

Restricții și precizări

  • 1 ≤ n ≤ 9

Exemplu

Intrare

3

Ieșire

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

Explicație

În 3 luni floarea crește cu 3 rânduri de petale.

#include <bits/stdc++.h>
#define MAX 20
using namespace std;
int a[MAX][MAX];
int main()
{
    int n , k = 0 , q = 0 , z = 1;
    cin >> n;
    k = n * 2 + 1;
    q = n;
    for(int i = 1; i <= k / 2; i++)
    {
        for(int j = 1; j <= i; j++)
            {
                a[i][j] = n - j + 1;
                a[i][k - j + 1] = n - j + 1;
            }
        for(int j = i + 1; j <= k - i + 1; j++)
            a[i][j] = n - i + 1;
        q--;
    }

    for(int i = k/2 + 1; i <= k; i++)
    {
        for(int j = 1; j <= k - i + 1; j++)
            {
                a[i][j] = n - j + 1;
                a[i][k - j + 1] = n - j + 1;
            }
        for(int j = k - i + 2; j <= k - (k - i) - 1; j++)
            a[i][j] = i - n - 1;
        q--;
    }


    for(int i = 1; i <= k; i++)
    {
        for(int j = 1; j <= k; j++)
            cout << a[i][j] << " ";
        cout << endl;
    }

    return 0;
}
Comentarii

S-ar putea sa iti placa