3829 - Octogon: Difference between revisions

From Bitnami MediaWiki
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 = int(input())
def validare(n):
    if n < 2 or n > 40:
        print("Numarul introdus nu este valid!")
        return False
    return True


# afișăm prima jumătate a octogonului
for i in range(n):
    for j in range(n - i - 1):
        print("#", end="")
    for j in range(2 * i + 1):
        print("*", end="")
    for j in range(n - i - 1):
        print("#", end="")
    print()


# afișăm a doua jumătate a octogonului
def afisare_octogon(n):
for i in range(n - 2, -1, -1):
    if not validare(n):
    for j in range(n - i - 1):
        return
        print("#", end="")
 
    for j in range(2 * i + 1):
    m = 2 * n - 1
        print("*", end="")
    for i in range(m):
    for j in range(n - i - 1):
        for j in range(m):
        print("#", end="")
            if i < n:
     print()
                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>