fbpx

Problema #1412 – Desen – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dau 2 numere naturale c și n, de o singură cifră. În funcție de valoarea lui c construiți o figură geometrică formată din cifre de la 1 la n, ca în exemple. Dacă c are valoarea:

  • 1 : se va construi un pătrat (latura va fi egală cu n);
  • 2 : se va construi un romb (latura va fi egală cu n);
  • 3 : se va construi un dreptunghi (lungimea lui va fi egală cu n iar lățimea cu dublul lui n;
  • 4 : se va construi un triunghi isoscel (laturile egale vor avea valoarea lui n);

Date de intrare

Programul citește de la tastatură 2 numere naturale c și n.

Date de ieșire

Programul va afișa pe ecran forma geometrica obținută.

Restricții și precizări

1 ≤ n ≤ 9

Cerința

Se dau 2 numere naturale c și n, de o singură cifră. În funcție de valoarea lui c construiți o figură geometrică formată din cifre de la 1 la n, ca în exemple. Dacă c are valoarea:

  • 1 : se va construi un pătrat (latura va fi egală cu n);
  • 2 : se va construi un romb (latura va fi egală cu n);
  • 3 : se va construi un dreptunghi (lungimea lui va fi egală cu n iar lățimea cu dublul lui n;
  • 4 : se va construi un triunghi isoscel (laturile egale vor avea valoarea lui n);

Date de intrare

Programul citește de la tastatură 2 numere naturale c și n.

Date de ieșire

Programul va afișa pe ecran forma geometrica obținută.

Restricții și precizări

1 ≤ n ≤ 9
1 ≤ c ≤ 4

Exemplu 1:

Intrare

1 5

Ieșire

11111
22222 
33333
44444
55555

Exemplu 2:

Intrare

2 5

Ieșire

    1
   222
  33333
 4444444
555555555
 4444444
  33333
   222
    1

Exemplu 3:

Intrare

3 5

Ieșire

1111111111
2222222222
3333333333
4444444444
5555555555

Exemplu 4:

Intrare

4 5

Ieșire

    1
   222
  33333
 4444444
555555555
#include <bits/stdc++.h>
using namespace std;

int main ()
{
    int n;
    int c;
    cin >> c;
    cin >> n;
    if (c==1)
    for (int i = 1; i <= n; ++i)
    {
        for (int j = 1; j <= n; ++j)
        cout << i;
        cout << endl;
    }
    if (c==3)
    for (int i = 1; i <= n; ++i)
    {
        for (int j = 1; j <= n*2; ++j)
        cout << i;
        cout << endl;
    }
    if (c==2)
    {
    for (int i = 1; i <= n; ++i)
    {
        // pe linia i scriu n - i spatii
        for (int j = 1; j <= n - i; ++j)
            cout << ' ';
            
        // mai scriu 2 * i - 1 valori de i
        for (int j = 1; j <= 2 * i - 1; ++j)
            cout << i;
        cout << '\n';
    }
    
    
    for (int i = 1; i < n; ++i)
    {
        // scriem i spatii pe linia i
        for (int j = 1; j <= i; ++j)
            cout << ' ';
            
        for (int j = 1; j <= 2 * (n - i) - 1; ++j)
            cout << n - i;
        cout << '\n';
    }
    }
    if (c==4)
    for (int i = 1; i <= n; ++i)
    {
        // pe linia i scriu n - i spatii
        for (int j = 1; j <= n - i; ++j)
            cout << ' ';
            
        // mai scriu 2 * i - 1 valori de i
        for (int j = 1; j <= 2 * i - 1; ++j)
            cout << i;
        cout << '\n';
    }
    return 0;  
}
Comentarii

S-ar putea sa iti placa