Olimpiadi Italiane di Informatica – Correttore online – Facili
È assegnato un intero n in notazione decimale.
Si deve convertire n nella notazione in base k e quindi trovare la differenza fra il prodotto e la somma delle sue cifre in questa notazione.
Per esempio, se n=239 e k=8, la rappresentazione ottale di n è 357 e la soluzione del problema è 3*5*7 – (3+5+7) = 90.
Esempi di input/output
+-------------+------------+
| input.txt | output.txt |
+----+-------------+------------+
| 1° | 75120 9 | -16 |
+----+-------------+------------+
| 2° | 324783902 9 | 37594 |
+----+-------------+------------+
Osserva
- quoziente: le cifre più significative di n
- resto: la cifra meno significativa di n
n = 239
k = 8
prodotto = 1
somma = 0
while(n > 0):
quoziente = n//k
resto = n%k
prodotto *= resto
somma += resto
n = quoziente
differenza = prodotto-somma
print(differenza)
Versione OII
f = open("input.txt", "r")
linea = f.read()
f.close()
dati = linea.split()
n = int(dati[0])
k = int(dati[1])
prodotto = 1
somma = 0
while(n > 0):
quoziente = n//k
resto = n%k
prodotto *= resto
somma += resto
n = quoziente
differenza = prodotto-somma
stringa = str(differenza)
f = open("output.txt", "w")
f.write(stringa)
f.close()