3829 - Octogon: Difference between revisions
Paul Ungur (talk | contribs) |
Paul Ungur (talk | contribs) No edit summary |
||
| Line 53: | Line 53: | ||
def afisare_octogon(n): | def afisare_octogon(n): | ||
for j in range(n - 1): | |||
# scriem primele j+1 caractere # | |||
for i in range(j + 1, n): | |||
print('#', end='') | |||
# scriem urmatoarele j2+n caractere * | |||
for i in range(j * 2 + n): | |||
print('*', end='') | |||
# scriem ultimele j+1 caractere # | |||
for i in range(j + 1, n): | |||
print('#', end='') | |||
# trecem la linia urmatoare | |||
print() | |||
for i in range(n): | |||
for i in range( | for j in range(n * 3 - 2): | ||
for j in range( | print('*', end='') | ||
print() | print() | ||
for j in range(n - 1): | |||
# scriem primele n-j-1 caractere # | |||
for i in range(n - j - 1, n): | |||
print('#', end='') | |||
# scriem urmatoarele (n-j-1)*2+n-2 caractere * | |||
for i in range((n - j - 1) * 2 + n - 2): | |||
print('*', end='') | |||
# scriem ultimele n-j-1 caractere # | |||
for i in range(n - j - 1, n): | |||
print('#', end='') | |||
# trecem la linia urmatoare | |||
print() | |||
if __name__ == "__main__": | if __name__ == "__main__": | ||
n = int(input("Introduceti numarul n: ")) | |||
if validare(n): | |||
print("Date de intrare valide") | |||
afisare_octogon(n) | |||
else: | |||
print("Date de intrare invalide") | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 16:02, 26 April 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):
for j in range(n - 1):
# scriem primele j+1 caractere #
for i in range(j + 1, n):
print('#', end=)
# scriem urmatoarele j2+n caractere *
for i in range(j * 2 + n):
print('*', end=)
# scriem ultimele j+1 caractere #
for i in range(j + 1, n):
print('#', end=)
# trecem la linia urmatoare
print()
for i in range(n):
for j in range(n * 3 - 2):
print('*', end=)
print()
for j in range(n - 1):
# scriem primele n-j-1 caractere #
for i in range(n - j - 1, n):
print('#', end=)
# scriem urmatoarele (n-j-1)*2+n-2 caractere *
for i in range((n - j - 1) * 2 + n - 2):
print('*', end=)
# scriem ultimele n-j-1 caractere #
for i in range(n - j - 1, n):
print('#', end=)
# trecem la linia urmatoare
print()
if __name__ == "__main__":
n = int(input("Introduceti numarul n: "))
if validare(n):
print("Date de intrare valide")
afisare_octogon(n)
else:
print("Date de intrare invalide")
</syntaxhighlight>