Informatică, întrebare adresată de danamocanu71, 8 ani în urmă

#2099(pbinfo)
Fiind dat un numar natural, efectuand suma patratelor cifrelor numarului dat, apoi repetand insumarea patratelor cifrelor pentru numerele obtinute ca rezultat, la un moment dat se obtine una dintre valorile 1 sau 4.
Dat un set de numere naturale, sa se determine pentru fiecare dintre ele, numarul de repetari ale calculului sumei patratelor cifrelor pana la obtinerea rezultatului 1 sau 4.

Răspunsuri la întrebare

Răspuns de rossetta
5
#include <iostream>
using namespace std;

int sumpatr (long long n) {
    int nr = 0;
    long long s;
    while( n != 1 && n != 4) {
      nr++;
      s = 0;
      while( n != 0) {
        s = s + (n % 10 ) * (n % 10);
        n /= 10;
      }
      n = s;
   }
  return nr;
}
int main() {

    int n;
    cin >> n;
    for(int i = 0; i < n; i++){
      long long val;
      cin >> val;
      cout << sumpatr(val)  << " ";
    }
    return 0;
}

danamocanu71: Multumesc frumos
rossetta: cu placere
Alte întrebări interesante