fbpx

Problema #3076 – circular – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Scrieți un program care citește un număr natural n și care să calculeze suma S a tuturor numerelor obținute prin permutări circulare la dreapta ale cifrelor lui n cu o poziție.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran numărul S, cu semnificația din enunț.

Restricții și precizări

  • 1 ≤ n ≤ 2.000.000.000

Exemplu

Intrare

123

Ieșire

666

Explicație

S-au citit n=123. Suma calculată este S=666 (=312+231+123).

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int s = 0;
    int cnt = 0;
    while(n)
    {
        s+=n%10;
        n/=10;
        cnt++;
    }
    long long int nr = 0;
    int tr = 0;
    int a[20];
    for(int i = cnt; i > 0; --i)
        a[i] = (s + tr) % 10, tr = (s+tr) / 10;
    if(tr != 0)
        cout << tr;
    for(int i = 1; i <= cnt; ++i)
        cout << a[i];
    return 0;
}
Comentarii

S-ar putea sa iti placa