Rezolvare completă PbInfo #1949 tort_LMA

Cerința

Un celebru rezolvitor de pe pbinfo împlinește venerabila vârstă de n ani. Ceilalți rezolvitori s-au gândit să îi facă o surpriză și să comande un tort special. Acesta are mai multe nivele, toate având forma pătrată, astfel:

  • primul nivel este format din n*n prăjituri fiecare având prețul de 1 leu și având scris numărul 1 în partea de sus.
  • al doilea nivel se suprapune peste primul exact la mijloc și este format din (n-2)*(n-2) prăjituri fiecare având prețul de 2 lei și având scris numărul 2 în partea de sus.
  • al treilea nivel se suprapune peste al doilea exact la mijloc și este format din (n-4)*(n-4) prăjituri fiecare având prețul de 3 lei și având numărul 3 în partea de sus.
  • ș.a.m.d.

a) Calculați și afișați numărul de nivele pe care le are tortul special.
b) Afișați tortul, așa cum se vede dacă este privit de sus.
c) Calculați și afișați prețul tortului.

Date de intrare

Programul citește de la tastatură numărul n reprezentând vârsta celebrului rezolvitor.

Date de ieșire

Programul va afișa pe ecran pe prima linie numărul de nivele pe care le are tortul special.
Pe următoarele n linii va fi desenat tortul, iar pe următoarea linie va fi scris prețul tortului.

Restricții și precizări

  • 1 ≤ n ≤ 100

Exemplu

Intrare

5

Ieșire

3
11111
12221
12321
12221
11111
46

Explicație

Tortul are 3 nivele. Primul nivel este format din 25 de prăjituri (fiecare cu prețul de 1 leu și cifra 1), al doilea din 9 prăjituri (fiecare cu prețul de 2 lei și cifra 2), iar al treilea dintr-o singură prăjitură (cu prețul 3 lei și cifra 3).

Prăjiturile de pe primul nivel costă în total 25 lei, cele de pe al doilea 18 lei, iar cele de pe al treilea 3 lei.

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 tort_LMA:

#include <iostream>
using namespace std;

int main()
{
    int n,p=0;
    cin>>n;
    cout<<(n+1)/2<<endl;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            {
                int dmin=100;
                if(i-1<dmin) dmin=i-1;
                if(n-i<dmin) dmin=n-i;
                if(j-1<dmin) dmin=j-1;
                if(n-j<dmin) dmin=n-j;
                cout<<dmin+1;
            }
        cout<<endl;
    }
    for(int i=0;i<(n+1)/2;i++)
        p=p+(i+1)*(n-2*i)*(n-2*i);
    cout<<p;
    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 #1949 tort_LMA

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1949 tort_LMA 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!