3609 - Count Mod 10: Difference between revisions
No edit summary |
No edit summary |
||
Line 28: | Line 28: | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# 3609 - countmod10 | # 3609 - countmod10 | ||
def | def validare(num1, num2): | ||
# Daca datele sunt invalide v-om face raise la eroarea ValueError | |||
if num1 >= 1 and num2 >= num1 and num2 <= 1000000000: | 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__': | 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 ⩽ num1 ⩽ num2 ⩽ 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>
- 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>