Cerința
Se dau n cifre zecimale: a1, a2, … , an. Determinaţi suma: S=a1a2…an¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯+ana1…an−1¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯+⋯+a2a3…ana1¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯, în care fiecare termen este obţinut prin permutarea circulară spre dreapta a cifrelor termenului precedent cu o poziţie.
Date de intrare
Fișierul de intrare sumperm.in conține pe prima linie numărul n, iar pe a doua linie cele n cifre separate prin spații.
Date de ieșire
Fișierul de ieșire sumperm.out va conține pe prima linie numărul S, reprezentând suma calculată.
Restricții și precizări
2 ≤ n ≤ 9
Răspunsuri la întrebare
Răspuns de
4
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sumperm.in");
ofstream g("sumperm.out");
int main()
{
int n, a[10],p=1;
long long s=0,nr=0;
f>>n;
for(int i=1;i<=n;i++)
{
f>>a[i];
nr=nr*10+a[i];
p=p*10;
}
/// cout<<nr<<" "<<p<<endl;
int i;
for( i=n;i>=1;i--)
{
nr=nr/10;
nr=nr+1LL*a[i]*(p/10);
/// cout<<nr<<" "<<s<<endl;
s=s+nr;
}
/// cout<<i;
g<<s;
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă