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
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema suma_perm_circ:
#include <iostream>
#include <cstring>
using namespace std;
void produs(int A[], int &n, int x)
{//inmulteste numarul mare din A cu numarul mic x
int t=0; //transportul
if(x==0) { n=1; A[1]=0; }
for(int i=1;i<=n;i++)
{
int c=A[i]*x+t;//inmultesc cifra si adun t
A[i]=c%10;//cifra
t=c/10;//transportul
}
while(t>0) //t se pune in fata cifra cu cifra
{
A[++n]=t%10;
t=t/10;
}
}
int main()
{
char s[100001];
int sc=0,A[110001];
cin>>s;
int nc=strlen(s);
for(int i=0;i<nc;i++)
{
sc=sc+s[i]-48;
A[i+1]=1;
}
produs(A,nc,sc);
for(int i=nc;i>=1;i--)
cout<<A[i];
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3100 suma_perm_circ
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3100 suma_perm_circ de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!