1925 - Numar 9: Difference between revisions

From Bitnami MediaWiki
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)
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Sursa: [https://www.pbinfo.ro/probleme/1925/numar9]
==Cerința==
==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.
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.
Line 24: Line 26:
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 45:
     f.write(str(A) + "\n")
     f.write(str(A) + "\n")
     f.write(str(A % K) + "\n")
     f.write(str(A % K) + "\n")
</syntaxhighlight>

Latest revision as of 12:54, 20 May 2023

Sursa: [1]

Cerința[edit]

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[edit]

Fișierul de intrare numar9.in conține pe prima linie numerele naturale S şi K.

Date de ieșire[edit]

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[edit]

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:[edit]

numar9.in

25 13 numar9.out

799 6

Explicație[edit]

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[edit]

<syntaxhighlight lang="python" line>

  1. Citim valorile S și K din fișierul de intrare

with open("numar9.in") as f:

   S, K = map(int, f.readline().split())
  1. Inițializăm A cu 0

A = 0

  1. 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
  1. 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>