3829 - Octogon

From Bitnami MediaWiki

Cerința

Să se afișeze un octogon de latură n umplut cu caractere * iar spațiul spațiul exterior umplut cu #, ca în exemplu.

Date de intrare

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

Date de ieșire

Programul va afișa octogonul cerut.

Restricții și precizări

2 ≤ n ≤ 40

Exemplu:

Intrare

5

Ieșire

####*****####

###*******###

##*********##

#***********#

*************

*************

*************

*************

*************

#***********#

##*********##

###*******###

####*****####

Rezolvare

<syntaxhighlight lang="python" line="1"> def validare(n):

   if n < 2 or n > 40:
       print("Numarul introdus nu este valid!")
       return False
   return True


def afisare_octogon(n):

   if not validare(n):
       return
   m = 2 * n - 1
   for i in range(m):
       for j in range(m):
           if i < n:
               if j < n - i - 1 or j >= m - (n - i):
                   print("#", end="")
               else:
                   print("*", end="")
           else:
               if j < i - n + 1 or j >= m - (i - n + 1):
                   print("#", end="")
               else:
                   print("*", end="")
       print()


def main():

   n = int(input("Introduceti numarul n: "))
   afisare_octogon(n)


if __name__ == "__main__":

   main()

</syntaxhighlight>