Correttore online – Intermedi
È 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.
Dati di input
Il file di input contiene su una riga i due numeri interi in notazione decimale n e k separati da uno spazio con
- 0 < n < 109+1
- 1 < k < 11.
Dati di output
Il file contiene un unico numero, la risposta al problema.
Esempi di input/output
input.txt output.txt 75120 9 -16 324783902 9 37594 Autore/i: A.S. Stankevich, ACM ICPC Team St. Petersburg State University of Information technology, Mechanics and Optics.
/* www.valcon.it Esercizi preparatori - Intermedi Cambi di base */ #include#include using namespace std; int main() { ifstream fin ( "input.txt"); ofstream fout("output.txt"); long n; // numero in ingresso da convertire int k; // base di arrivo long quoziente; // ... int resto; // ... long prodotto; // c1*c2*... int somma; // c1+c2+... long differenza; // prodotto - somma fin >> n >> k; prodotto=1; somma =0; while(n > 0) { quoziente = n/k; // tutte le cifre tranne l'ultima resto = n%k; // la cifra meno significativa prodotto *= resto; somma += resto; n = quoziente; } differenza=prodotto-somma; fout << differenza; return 0; }