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

Am si eu o intrebare . Se dă n un număr natural. Să se afișeze un romb de latură n umplut cu caractere * iar spațiul spațiul exterior umplut cu #, ca în exemplu.
ex: 5
####*####
###***###
##*****##
#*******#
*********
#*******#
##*****##
###***###
####*####

Răspunsuri la întrebare

Răspuns de Ouroboros
1
#include using namespace std; int main() { int a,t,x,y,b; cin>>x; if(x%2==0) {x=2*x-2; y=x; for (a = 1; a <= x; a++) { if((a % 2) == 0){ t = (x - a)/2; for(int i = 0; i <= t; i++) { cout << "#"; } for(b=1; b < a ; b++){ cout << '*'; } for(int i = t; i <= 2*t; i++) { cout << "#"; } cout << endl; } } for(;y>=0;y--) { cout<<'*'; } cout<0; a--) { if((a % 2) == 0){ t = (x - a)/2; for(int i = t; i >= 0; i--) { cout << "#"; } for(b=a-1; b >0 ; b--){ cout << '*'; } for(int i = 2*t; i >= t; i--) { cout << "#"; } cout << endl; } } } else { x=2*x-1; y=x; for (a = 1; a <= x; a++) { if((a % 2) == 0){ t = (x - a)/2; for(int i = 0; i <= t; i++) { cout << "#"; } for(b=1; b < a ; b++){ cout << '*'; } for(int i = t; i <= 2*t; i++) { cout << "#"; } cout << endl; } } for(;y>0;y--) for (; a>1; a--) { if((a % 2) == 0){ t = (x - a-1)/2; for(int i = t; i >= 0; i--) { cout << "#"; } for(b=a-1; b >0 ; b--){ cout << '*'; } for(int i = 2*t; i >= t; i--) { cout << "#"; } cout << endl; } } } return 0; }
Alte întrebări interesante