Rezolvare completă PbInfo #2911 WriteDigits

Cerința

Se dă un număr natural n. Să se afișeze fiecare cifră a numărului folosind simbolul @, ca în exemplu.

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran fiecare cifră a numărului citit scrisă. După fiecare cifră se va lăsa un rând gol.

Restricții și precizări

  • \( 1 ≤ n ≤ {10}^{10} \)

Exemplu

Intrare

1234567890

Ieșire

  @
 @@
  @
  @
@@@@@

@@@@
@  @
  @
 @
@@@@

@@@@@
    @
@@@@@
    @
@@@@@

@   @
@   @
@@@@@
    @
    @

@@@@@
@
@@@@@
    @
@@@@@

@@@@@
@
@@@@@
@   @
@@@@@

@@@@
   @
  @@@
   @
   @

@@@@@
@   @
@@@@@
@   @
@@@@@

@@@@@
@   @
@@@@@
    @
    @

@@@@@
@   @
@   @
@   @
@@@@@

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema WriteDigits:

#include <bits/stdc++.h>
using namespace std;

void zoom(long long n)
{
    string s=to_string(n);
    for (int k=0; k<s.length(); k++)
    {
        switch(s[k]-'0')
        {
        case 0:
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    if (i==0 || i==4)
                        cout << '@';
                    else if (j==0 || j==4)
                        cout << '@';
                    else
                        cout << " ";

                }
                cout << '\n';
            }
            cout << '\n';
            continue;

        case 1:
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    if (j==2)
                        cout << '@';
                    else if ((i==1 && j==1))
                        cout << '@';
                    else if (i==4)
                        cout << '@';
                    else
                        cout << " ";

                }
                cout << '\n';
            }
            cout << '\n';
            continue;

        case 2:
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<4; j++)
                {
                    if (i==0 && j==4)
                        cout << " ";
                    else if (i==0 || i==4)
                        cout << '@';
                    else if (i==1 && j==0)
                        cout << '@';
                    else if (i==(4-j))
                        cout << '@';
                    else
                        cout << " ";
                }
                cout << '\n';
            }
            cout << '\n';
            continue;

        case 3:
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    if (i==0 || i==2 || i==4)
                        cout << '@';
                    else if (j==4)
                        cout << '@';
                    else
                        cout << " ";
                }
                cout << '\n';
            }
            cout << '\n';
            continue;

        case 4:
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    if (j==4)
                        cout << '@';
                    else if (i==2)
                        cout << '@';
                    else if (j==0 && (i==0 || i==1))
                        cout << '@';
                    else
                        cout << " ";
                }
                cout << '\n';
            }
            cout << '\n';
            continue;

        case 5:
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    if (i==0 || i==2 || i==4)
                        cout << '@';
                    else if ((j==0 && i==1) ||
                             (j==4 && i==3))
                        cout << '@';
                    else
                        cout << " ";
                }
                cout << '\n';
            }
            cout << '\n';
            continue;

        case 6:
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    if (i==0 || i==2 || i==4)
                        cout << '@';
                    else if ((j==0 && (i==1 || i==3)) ||
                                       (j==4 && i==3))
                        cout << '@';
                    else
                        cout << " ";
                }
                cout << '\n';
            }
            cout << '\n';
            continue;

        case 7:
            for (int i=0 ; i<5; i++)
            {
                for (int j=0 ; j<5; j++)
                {
                    if (i==0 && (j!=4))
                        cout << '@';
                    else if (i==2 && (j==2 || j==4))
                        cout << '@';
                    else if (j==3)
                        cout << '@';
                    else
                        cout << " ";
                }
                cout << '\n';
            }
            cout << '\n';
            continue;

        case 8:
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    if (i==0 || i==2 || i==4)
                        cout << '@';
                    else if ((j==0 && (i==1 || i==3) ||
                            (j==4 && (i==1 || i==3))))
                        cout << '@';
                    else
                        cout << " ";
                }
                cout << '\n';
            }
            cout << '\n';
            continue;

        case 9:
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    if ( i==0 || i==2 || j==4)
                        cout << '@';
                    else if (i==1 && j==0)
                        cout << '@';
                    else
                        cout << " ";
                }
                cout << '\n';
            }
            cout << '\n';
            continue;
        }
    }
}

int main()
{
    long long n;
    cin>>n;
    zoom(n);
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2911 WriteDigits

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2911 WriteDigits de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!