1573 - Verif Progresie: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerința== Se dau n valori naturale. Stabiliți dacă există o progresie aritmetică cu rația număr natural mai mare decât 1 din care să facă parte toate aceste valori. ==Date de intrare== Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații. ==Date de ieșire== Programul va afișa pe ecran mesajul DA , dacă există progresia aritmetică cerută, respectiv NU în caz contrar. ==Restricții și precizări== *1 ≤ n ≤ 25...
Tag: visualeditor
 
Tag: visualeditor
 
(One intermediate revision by the same user not shown)
Line 18: Line 18:
==Exemplul 2==
==Exemplul 2==
;Intrare
;Intrare
:3
:0
:23 3
:0
;Ieșire
;Ieșire
:Datele de intrare nu corespund restricțiilor impuse.
:Datele de intrare nu corespund restricțiilor impuse.
:NU
:
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="">
<syntaxhighlight lang="python" line="1">
#1573 - Verif Progresie
#1573 - Verif Progresie
def progresie_aritmetica(numere):
def progresie_aritmetica(numere): # definim o functie ce cauta o progresie progresie_aritmetica
                                  # formata din trei elemente intr-o lista de numere
     n = len(numere)
     n = len(numere)
     if n < 3:
     if n < 3:
Line 38: Line 39:


if __name__ == "__main__":
if __name__ == "__main__":
     n = int(input("Introduceți numărul de valori: "))
     n = int(input("Introduceți numărul de valori: ")) # citim numărul de valori și lista de numere
                                                      # de la tastatură
     numere = list(map(int, input("Introduceți valorile, separate prin spațiu: ").split()))
     numere = list(map(int, input("Introduceți valorile, separate prin spațiu: ").split()))
     if n < 1 or n > 2500 or max(numere) > 2000000000:
     if n < 1 or n > 2500 or max(numere) > 2000000000: # verificarea restrictiilor
         print("Datele de intrare nu corespund restricțiilor impuse.")
         print("Datele de intrare nu corespund restricțiilor impuse.")
         if progresie_aritmetica(numere):
         if progresie_aritmetica(numere): # apelam functia progresie_aritmetica si afisam DA daca
             print("DA")
                                        # exista o progresie aritmetica si NU in caz contrar
             print("NU")
     else:
     else:
         print("Datele de intrare corespund restricțiilor impuse.")
         print("Datele de intrare corespund restricțiilor impuse.")
         print("NU")
         print("DA")


      
      
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 22:13, 28 April 2023

Cerința[edit]

Se dau n valori naturale. Stabiliți dacă există o progresie aritmetică cu rația număr natural mai mare decât 1 din care să facă parte toate aceste valori.

Date de intrare[edit]

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire[edit]

Programul va afișa pe ecran mesajul DA , dacă există progresia aritmetică cerută, respectiv NU în caz contrar.

Restricții și precizări[edit]

  • 1 ≤ n ≤ 2500;
  • cele n numere citite vor fi mai mici decât 2.000.000.000;

Exemplul 1[edit]

Intrare
6
2 10 12 16 20 18
Ieșire
Datele de intrare corespund restricțiilor impuse.
DA

Exemplul 2[edit]

Intrare
0
0
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare[edit]

<syntaxhighlight lang="python" line="1">

  1. 1573 - Verif Progresie

def progresie_aritmetica(numere): # definim o functie ce cauta o progresie progresie_aritmetica

                                 # formata din trei elemente intr-o lista de numere
   n = len(numere)
   if n < 3:
       return None
   for i in range(n):
       for j in range(i+1, n):
           for k in range(j+1, n):
               if numere[i] + numere[k] == 2 * numere[j]:
                   return [numere[i], numere[j], numere[k]]
   return None

if __name__ == "__main__":

   n = int(input("Introduceți numărul de valori: ")) # citim numărul de valori și lista de numere 
                                                     # de la tastatură
   numere = list(map(int, input("Introduceți valorile, separate prin spațiu: ").split()))
   if n < 1 or n > 2500 or max(numere) > 2000000000: # verificarea restrictiilor
       print("Datele de intrare nu corespund restricțiilor impuse.")
       if progresie_aritmetica(numere): # apelam functia progresie_aritmetica si afisam DA daca 
                                        # exista o progresie aritmetica si NU in caz contrar
           print("NU")
   else:
       print("Datele de intrare corespund restricțiilor impuse.")
       print("DA")


</syntaxhighlight>