Circular #3076 de pe pbinfo
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).
Răspunsuri la întrebare
Răspuns de
2
Răspuns:
#include<iostream>
using namespace std;
int main(){
long long numar,p=1,suma=0;
cin>>numar;
int aux = numar;
int nrCifre = 0;
numar = 0;
while(aux){
nrCifre++;
numar+=aux%10;
aux/=10;
}
for(int i = 1 ; i<=nrCifre;i++){
suma+=numar*p;
p*=10;
}
cout<<suma;
return 0;
}
Explicație:
Daca esti atent si observi, nu trebuie sa faci permutarea numarului, suma cifrelor lui inmultita progresiv cu 1,10,100,..pana la ordinul numarului, va da mereu suma permutarilor lui.
Alte întrebări interesante
Matematică,
8 ani în urmă
Fizică,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă