👤

Cerință

Andreea se ocupă de aranjarea unei săli. De data aceasta trebuie să picteze pe pereți niște modele în formă de romb, însă nu crede că se va descurca decât dacă primește și schița digitalizată. Astfel, ea vă dă înălțimea rombului, iar voi va trebui să îl reprezentați.


Sarcina ta e să formezi un romb (după modelul din exemplu) cu înălțimea de lungime N și laturile formate din *.


Date de intrare

Se citește un singur număr natural N, înălțimea rombului.


Date de ieșire

Se vor afișa N linii, reprezentând "desenul" cerut.


Restricții

3 ≤ N ≤ 100

Se garantează că N este impar

Exemplu

Pentru n = 5 se va afișa


CerințăAndreea Se Ocupă De Aranjarea Unei Săli De Data Aceasta Trebuie Să Picteze Pe Pereți Niște Modele În Formă De Romb Însă Nu Crede Că Se Va Descurca Decât class=

Răspuns :

Răspuns:

Explicație:

#include <iostream>

using namespace std;

int main()

{

   int n,p=-1, i, j;

   cin>>n;

   for (i=1;i<=n/2+1;++i) {

     for (j=1;j<=n/2+1-i;++j){

       cout<<" ";

     }

     cout<<"*";

     for (j=1;j<=p;++j){

       cout<<" ";

     }

       if (p>0) { cout<<"*";}

       p+=2;cout<<"\n";

   }

   p=n-3;

   for (i=1; i<=n/2; ++i)

   {

       for (j=1; j<=i; ++j)

           cout << " ";

       cout << "*";

        for (j=1;j<p;++j){

       cout<<" ";

     }

       if (p>0) { cout<<"*";}

       p-=2;cout<<"\n";

   }

}

Răspuns pascal :

uses crt;

var

 i, j, n: integer;

begin

 clrscr;

 readln(n);

 for i := 1 to n do  

   if i mod 2 = 1 then

   begin

     for j := 1 to (n - i) div 2 do write(' ');

     for j := 1 to i do write('*');

     writeln;

   end;

 for i := n - 1 downto 1 do  

   if i mod 2 = 1 then

   begin

     for j := 1 to (n - i) div 2 do write(' ');

     for j := 1 to i do write('*');

     writeln;

   end;

 readln;

end.