0480 - Sum 3 Cons: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerință== Se citește un număr natural n. Să se stabilească dacă n poate fi scris ca sumă de trei numere naturale consecutive. ==Date de intrare== Programul citește de la tastatură numărul n. ==Date de ieșire== Programul afișează pe ecran trei numere naturale consecutive a căror sumă este n, ordonate crescător și separate prin exact un spațiu, dacă există sau mesajul NU EXISTA, dacă nu există trei astfel de numere. ==Restricții de precizări== *1 &le...
Tag: visualeditor
 
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Cerință==
==Cerință==
Se citește un număr natural n. Să se stabilească dacă n poate fi scris ca sumă de trei numere naturale consecutive.
Se citește un număr natural '''n'''. Să se stabilească dacă '''n''' poate fi scris ca sumă de trei numere naturale consecutive.


==Date de intrare==
==Date de intrare==
Programul citește de la tastatură numărul n.
Programul citește de la tastatură numărul '''n'''.
==Date de ieșire==
==Date de ieșire==
Programul afișează pe ecran trei numere naturale consecutive a căror sumă este n, ordonate crescător și separate prin exact un spațiu, dacă există sau mesajul NU EXISTA, dacă nu există trei astfel de numere.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul afișează pe ecran trei numere naturale consecutive a căror sumă este '''n''', ordonate crescător și separate prin exact un spațiu, dacă există sau mesajul NU EXISTA, dacă nu există trei astfel de numere. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
 
==Restricții de precizări==
==Restricții de precizări==
*1 ⩽  n ⩽ 100000
*1 ⩽  '''n''' ⩽ 100000
==Exemplul 1==
==Exemplul 1==
;Intrare
;Intrare
Line 34: Line 35:


== Rezolvare ==
== Rezolvare ==
=== Rezolvare ver. 1 ===
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def afiseaza_suma_trei_consecutive(n):
def validare_date(n):
     for i in range(1, n // 2 + 1):
    return n.isdigit() and 1 <= int(n) <= 100000
         if (i + (i+1) + (i+2)) == n:
 
             print(i, i+1, i+2)
 
             return
def verifica_suma_consecutiva(n): #verificăm dacă există o sumă consecutivă de 3 numere întregi
     print("NU EXISTA")
    found = False
     for i in range(1, n // 3 + 1): #verifcăm numerele, dacă acestea formează o sumă egală cu n
         if i + (i + 1) + (i + 2) == n:  
             print(i, i + 1, i + 2, sep='\n')
             found = True
            break
     if not found: #dacă condițile nu se îndeplinesc, atunci se afișează NU EXISTA
        print("NU EXISTA")
 
 
if __name__ == '__main__':
    n = input("Introduceti numarul n: ")
 
    if validare_date(n):
        n = int(n)


        print("Datele de intrare corespund restricțiilor impuse.")
        verifica_suma_consecutiva(n)
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 18:21, 22 April 2023

Cerință[edit]

Se citește un număr natural n. Să se stabilească dacă n poate fi scris ca sumă de trei numere naturale consecutive.

Date de intrare[edit]

Programul citește de la tastatură numărul n.

Date de ieșire[edit]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul afișează pe ecran trei numere naturale consecutive a căror sumă este n, ordonate crescător și separate prin exact un spațiu, dacă există sau mesajul NU EXISTA, dacă nu există trei astfel de numere. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări[edit]

  • 1 ⩽  n ⩽ 100000

Exemplul 1[edit]

Intrare
9
Ieșire
Datele introduse corespund restricțiilor impuse.
2
3
4

Exemplul 2[edit]

Intrare
7
Ieșire
Datele introduse corespund restricțiilor impuse.
NU EXISTA

Rezolvare[edit]

Rezolvare ver. 1[edit]

<syntaxhighlight lang="python" line="1" start="1"> def validare_date(n):

   return n.isdigit() and 1 <= int(n) <= 100000


def verifica_suma_consecutiva(n): #verificăm dacă există o sumă consecutivă de 3 numere întregi

   found = False
   for i in range(1, n // 3 + 1): #verifcăm numerele, dacă acestea formează o sumă egală cu n
       if i + (i + 1) + (i + 2) == n: 
           print(i, i + 1, i + 2, sep='\n')
           found = True
           break
   if not found: #dacă condițile nu se îndeplinesc, atunci se afișează NU EXISTA
       print("NU EXISTA")


if __name__ == '__main__':

   n = input("Introduceti numarul n: ")
   if validare_date(n):
       n = int(n)
       print("Datele de intrare corespund restricțiilor impuse.")
       verifica_suma_consecutiva(n)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>