3829 - Octogon
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>