1925 - Numar 9: Difference between revisions
Pop Giulia (talk | contribs) Pagină nouă: ==Cerința== Se dau două numere naturale S şi K. Să se afle cel mai mic număr natural A care are suma cifrelor egală cu S, precum şi restul împărţirii lui A la K. ==Date de intrare== Fișierul de intrare numar9.in conține pe prima linie numerele naturale S şi K. ==Date de ieșire== Fișierul de ieșire numar9.out va conține pe prima linie numărul A, iar pe a doua linie restul împărţirii lui A la K. ==Restricții și precizări== 1 ≤ S ≤ 20.000.000 1 ≤... |
Pop Giulia (talk | contribs) |
||
Line 24: | Line 24: | ||
Cel mai mic număr natural care are suma cifrelor egală cu 25 este 799. Restul împărţirii lui 799 la 13 este 6. | Cel mai mic număr natural care are suma cifrelor egală cu 25 este 799. Restul împărţirii lui 799 la 13 este 6. | ||
==Solutie== | ==Solutie== | ||
<syntaxhighlight lang="python" line> | |||
# Citim valorile S și K din fișierul de intrare | # Citim valorile S și K din fișierul de intrare | ||
with open("numar9.in") as f: | with open("numar9.in") as f: | ||
Line 42: | Line 43: | ||
f.write(str(A) + "\n") | f.write(str(A) + "\n") | ||
f.write(str(A % K) + "\n") | f.write(str(A % K) + "\n") | ||
</syntaxhighlight> |
Revision as of 10:26, 30 April 2023
Cerința
Se dau două numere naturale S şi K. Să se afle cel mai mic număr natural A care are suma cifrelor egală cu S, precum şi restul împărţirii lui A la K.
Date de intrare
Fișierul de intrare numar9.in conține pe prima linie numerele naturale S şi K.
Date de ieșire
Fișierul de ieșire numar9.out va conține pe prima linie numărul A, iar pe a doua linie restul împărţirii lui A la K.
Restricții și precizări
1 ≤ S ≤ 20.000.000 1 ≤ K ≤ 1.000.000 Pentru prima cerinţă se acordă 60p, iar pentru a doua 40p Pentru a primi punctajul pentru a doua cerinţă, în fişierul numar9.out trebuie să afişaţi două numere
Exemplu:
numar9.in
25 13 numar9.out
799 6
Explicație
Cel mai mic număr natural care are suma cifrelor egală cu 25 este 799. Restul împărţirii lui 799 la 13 este 6.
Solutie
<syntaxhighlight lang="python" line>
- Citim valorile S și K din fișierul de intrare
with open("numar9.in") as f:
S, K = map(int, f.readline().split())
- Inițializăm A cu 0
A = 0
- Parcurgem cifrele de la dreapta la stânga
while S > 0:
# Adunăm cifra curentă la A cifra = min(S, 9) # putem aduna maxim 9 la A A = A * 10 + cifra S -= cifra
- Găsim restul împărțirii lui A la K și afișăm rezultatele în fișierul de ieșire
with open("numar9.out", "w") as f:
f.write(str(A) + "\n") f.write(str(A % K) + "\n")
</syntaxhighlight>