220
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
n
are cel mult100.000
de 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