299
Cerința
Scrieți un program care citește un număr natural n și care să calculeze și să afișeze suma S a tuturor numerelor obținute prin permutări circulare 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, reprezentând suma cerută.
Restricții și precizări
nare cel mult100.000de cifre
Exemplu
Intrare
165
Ieșire
1332
Explicație
Numere obținute din 165 prin permutări circulare sunt 165, 651 și 516, iar suma lor este 1332.
#include <bits/stdc++.h>
using namespace std;
void produs(int a[] , int &n , int m)
{
int t = 0;
for(int i = 1; i <= n ; i++)
{
long long c = 1LL * a[i] * m + t;
a[i] = c % 10;
t = c / 10;
}
while(t)
{
a[++n] = t % 10;
t /= 10;
}
}
int main()
{
char s[100001];
int a[100001] , sc = 0;
cin >> s;
int l = strlen(s);
for(int i = 0 ; i < l ; i++)
{
sc += (s[i] - 48);
a[i + 1] = 1;
}
produs(a , l , sc);
for(int i = l; i >= 1; i--)
cout << a[i];
}
Comentarii