În vacanța de iarnă Alex a primit un joc captivant și astfel a tot amânat lecturile de vacanță, fapt pentru care în prima săptămană din semestrul al II-lea a primit o notă mică la școală. Supărat, tatăl său i-a parolat jocul cu un cod de acces. Pentru că a început să recupereze din lecturi, tatăl îi dă un indiciu pentru obținerea codului de acces: îi arată un număr, dar după ce acesta a fost scris, cifrele încep să-i dispară în ordinea în care sunt scrise (adică de la stânga la dreapta), codul de acces fiind suma tuturor numerelor vizibile (obținute prin eliminarea pe rând a câte unei cifre).
Cerința
Vreți să îl ajutați pe Alex să găsească acest cod de acces pentru un număr n
primit? Scrieți un program care determină și afișează codul de acces al jocului. Puteți primi 100 de puncte.
Date de intrare
Fișierul de intrare codjoc.in
conține pe prima linie un număr n, reprezentând numărul arătat lui Alex de tatăl lui.
Date de ieșire
Fișierul de ieșire codjoc.out
va conține numărul ce reprezintă codul de acces al jocului lui Alex.
Restricții și precizări
- •
0 < n ≤ 2.000.000.000
,n
număr natural
Exemplu
codjoc.in
123456
codjoc.out
150886
Explicație
Suma numerelor 123456
, 23456
, 3456
, 456
, 56
, 6
este egală cu 150886
.
#include <bits/stdc++.h> using namespace std; ifstream cin("codjoc.in"); ofstream cout("codjoc.out"); long long n , sum; int nrcif(int n) { int c = 0; while(n != 0) c++ , n /= 10; return c; } int main() { cin >> n; sum += n; long long p = nrcif(n) , pp = 1; while(p > 0) { sum += n % pp; pp *= 10; p--; } cout << sum; }