ChameL1oN

Laba4_3

Mar 24th, 2016
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. /*Дано целое число N (N>0). Написать рекурсивную функцию, чтобы определить: 1) максимальную цифру числа (переменная Max), 2)
  2. позицию первой максимальной цифры (переменная P). Считать, что цифры в числе пронумерованы начиная от разряда единиц.
  3. Все действия выполнять на рекурсивном возврате.
  4. */
  5.  
  6. #include <iostream>
  7. #include <fstream>
  8.  
  9. using namespace std;
  10.  
  11. void Max(int x, int &max) //поиск максимальной цифры
  12. {
  13. if (x>0)
  14. if (max < x % 10){ max = x % 10; Max(x / 10, max); }
  15. else Max(x / 10, max);
  16. }
  17.  
  18. void Kol(int x, int max, int &k)
  19. {
  20. if (x>0)
  21. if (x % 10 == max) { k++; Kol(x / 10, max, k); }
  22. else Kol(x / 10, max, k);
  23. }
  24.  
  25. void main()
  26. {
  27. setlocale(LC_ALL, "rus");
  28. int max, x, p = 1;
  29. cout << "Введите число\n";
  30. cin >> x;
  31. max = x % 10; //максимум = первая цифра числа
  32. Max(x, max);
  33. Kol(x, max, p);
  34. cout << "Максимальное цифра: " << max << "Количество максимальных: " << p << endl;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment