Informatică, întrebare adresată de bajatu123, 9 ani în urmă

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
Cum pot rezolva problema de 100 puncte?

Răspunsuri la întrebare

Răspuns de stassahul
14
#include <iostream>

using namespace std;

int n,c,i,j;

int main()
{

    cin >> c >> n;

    if(c==1)
    {
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
                cout << i;
            cout << endl;
        }
    }

    else if(c==2)
    {
        int k=n-1;
        int l=1;

        for(i=1;i<=n;i++)
        {
            for(j=1;j<=k;j++)
                cout << " ";
            for(j=1;j<=l;j++)
                cout << i;
            cout << endl;
            k--;
            l+=2;
        }

        k++;
        l-=2;

        for(i=n-1;i>=1;i--)
        {
            k++;
            l-=2;
            for(j=1;j<=k;j++)
                cout << " ";
            for(j=1;j<=l;j++)
                cout << i;
            cout << endl;
        }
    }

    else if(c==3)
    {
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n*2;j++)
                cout << i;
            cout << endl;
        }
    }

    else if(c==4)
    {
        int k=n-1;
        int l=1;

        for(i=1;i<=n;i++)
        {
            for(j=1;j<=k;j++)
                cout << " ";
            for(j=1;j<=l;j++)
                cout << i;
            cout << endl;
            k--;
            l+=2;
        }
    }

    return 0;
}

bajatu123: multumesc mult
Alte întrebări interesante