Se citeste un numar natural n. Se calculeaza suma cuburilor cifrelor lui. Exemplu: daca se citeste 25, se calculeaza 2⌃3+5⌃3=133. Cu numarul obtinut procedam la fel: 1⌃3+3⌃3+3⌃3=55. Repetam procedeul: 5⌃3+5⌃3=250. Si iar: 2⌃3+5⌃3+0⌃3=133. Repetam procedeul pana ce obtinem un numar natural care este deja prezent in seria generata. Se cere sa se afiseze sirul de valori calculate prin acest procedeu.
ex: pentru n=25, se afiseaza seria:
25 133 55 250 133.
Sa se rezolve in c++ folosind subprograme.
Răspunsuri la întrebare
Răspuns de
1
Salut!
Ai rezolvarea in C++ mai jos
#include <iostream>
using namespace std;
int a[10001], cnt;
bool verif(int x) {
for (int i = 1; i <= cnt; ++i) {
if (a[i] == x) {
return false;
}
}
return true;
}
void prelucrare(int n) {
int s = 0;
while (n) {
int c = n % 10;
s += c * c * c;
n /= 10;
}
if (!verif(s)) { //conditie de oprire
a[++cnt] = s; //adaugam ultima valoare a.k.a cea care se repeta
return;
}
a[++cnt] = s;
prelucrare(s); //apelare recursiva
}
int main() {
int n;
cin >> n;
a[++cnt] = n; //adaugam numarul cu care incepem
prelucrare(n);
for (int i = 1; i <= cnt; ++i) {
cout << a[i] << " ";
}
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă