Guest User

Untitled

a guest
Jan 20th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int D (int N)
  5. {
  6. int a=abs(N),b=1;
  7. while (a>9)
  8. {
  9. b*=(a%10);
  10. a=(a-(a%10))/10;
  11. }
  12. b*=a;
  13. return b;
  14. }
  15. int S (int N, int x)
  16. {
  17. if (x==0) return N;
  18. else return D(S(N,x-1));
  19. }
  20. int main ()
  21. {
  22. int N;
  23. cin >> N;
  24. int a=0,b=1,K=-1;
  25. while (a!=b)
  26. {
  27. K++;
  28. a=S(N,K);
  29. b=S(N,K+1);
  30. }
  31. cout<<K<<endl;
  32. }
  33. /*
  34. Funkcja D jest określona na liczbach całkowitych w następujący sposób:
  35. D(N) = N, gdy 0 ? N ? 9;
  36. D(N) = iloczyn cyfr reprezentacji dziesiętnej liczby abs(N) w przeciwnym przypadku.
  37. Dana jest liczba całkowita N. Ciąg S konstruujemy następująco:
  38. S[0] = N
  39. S[1] = D(N)
  40. S[2] = D(D(N))
  41. ...
  42. S[K] = DK(N)
  43. ...
  44. Napisz funkcję, która, mając daną liczbę całkowitą N, zwraca taką najmniejszą nieujemną liczbę całkowitą K, że S[K] = S[K+1],
  45. gdzie S jest ciągiem skonstruowanym dla liczby całkowitej N. Funkcja ta powinna zwracać ?1, jeśli taka liczba K nie istnieje.
  46. */
Add Comment
Please, Sign In to add comment