3609 - Count Mod 10

From Bitnami MediaWiki
Revision as of 03:11, 14 May 2023 by Adrian (talk | contribs)

Cerința

Se dau două numere naturale nenule num1 și num2, unde num1 ⩽ num2. Să se determine câte numere naturale divizibile cu 10 sunt în intervalul [num1, num2].

Date de intrare

Programul citește de la tastatură numerele num1 și num2.

Date de ieșire

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse". În următorul rând se va afișa pe ecran numărul de numere naturale divizibile cu 10 din intervalul [num1, num2].

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse".

Restricții și precizări

  • 1 ⩽ num1num2 ⩽ 1000000000

Exemplu 1

Intrare
19
90
Ieșire
Datele de intrare corespund restricțiilor impuse
8


Exemplu 2

Intrare
11
8
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare

<syntaxhighlight lang="python" line>

  1. 3609 - countmod10

def validare(num1, num2):

   # Daca datele sunt invalide v-om face raise la eroarea ValueError
   if not (num1 >= 1 and num2 >= num1 and num2 <= 1000000000):
       raise ValueError


def countmod10(num1, num2):

   # Numarul de numere divizibile cu 10 din intervalul [num1, num2] 
   # este egal cu x-y, unde:
   #    x este numarul de numere divizibile cu 10 din intervalul [1, num2]
   #    y este numarul de numere divizibile cu 10 din intervalul [1, num1-1]
   #    x = num2 // 10
   #    y = (num1 - 1) // 10
   numere_div_10 = num2 // 10 - (num1 - 1) // 10
   print(numere_div_10)


if __name__ == '__main__':

   # Citim de la tastatura numerele cerute
   num1 = int(input())
   num2 = int(input())
   # Verificam daca datele introduse sunt valide
   # daca nu afisam mesajul corespunsador
   try:
       validare(num1, num2)
   except ValueError:
       print("Nu au fost respectate cerintele impuse")
   else:
       print("Datele de intrare corespund restricțiilor impuse")
       countmod10(num1, num2)

</syntaxhighlight>