3609 - Count Mod 10: Difference between revisions

From Bitnami MediaWiki
Adrian (talk | contribs)
No edit summary
Adrian (talk | contribs)
No edit summary
Line 28: Line 28:
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# 3609 - countmod10
# 3609 - countmod10
def countmod10():
def validare(num1, num2):
     num1 = int(input())
     # Daca datele sunt invalide v-om face raise la eroarea ValueError
    num2 = int(input())


     if num1 >= 1 and num2 >= num1 and num2 <= 1000000000:
     if not (num1 >= 1 and num2 >= num1 and num2 <= 1000000000):
         print("Datele de intrare corespund restricțiilor impuse")
         raise ValueError


        numere_div_10 = num2 // 10 - (num1 - 1) // 10


        print(numere_div_10)
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


     else:
     print(numere_div_10)
        print("Nu au fost respectate cerintele impuse")




if __name__ == '__main__':
if __name__ == '__main__':
     countmod10()
     # 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>
</syntaxhighlight>

Revision as of 03:11, 14 May 2023

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>