3829 - Octogon: Difference between revisions
Paul Ungur (talk | contribs) |
Paul Ungur (talk | contribs) |
||
| Line 45: | Line 45: | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
n | def validare(n): | ||
if n < 2 or n > 40: | |||
print("Numarul introdus nu este valid!") | |||
return False | |||
return True | |||
def afisare_octogon(n): | |||
for i in range( | 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> | </syntaxhighlight> | ||
Revision as of 14:51, 24 March 2023
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>