fork download
  1. #include <iostream>
  2. using namespace std;
  3. /*
  4. Ideea generala.
  5. Aflam prima cifra a numarului, apoi il parcurgem si
  6. contorizam aparitiile acesteia in numar. Afisam contorizarea.
  7.  
  8. Pasii de rezolvare:
  9. Declaram si citim datele de intrare.
  10. Declaram o variabila cu rol de contor, initializata cu 1,
  11. cat si o variabila care va stoca copia numarului.
  12. Cu ajutorul unei structuri repetitive, taiem din copie toate cifrele sale, exceptand-o pe prima
  13. Cu ajutorul unei alte structuri repetitive,
  14. parcurgem cifrele numarului si
  15. daca cifra curenta este egala cu prima cifra a numarului,
  16. contorizam.
  17. Afisam contorizarea.
  18. Teste:
  19. 0 -> 1
  20. 1 -> 1
  21. 7 -> 1
  22. 10 -> 1
  23. 12 -> 1
  24. 11 -> 2
  25. 27 -> 1
  26. 99 -> 2
  27. 100 -> 1
  28. 101 -> 2
  29. 111 -> 3
  30. 123 -> 1
  31. 1234 -> 1
  32. 1034 -> 1
  33. 1004 -> 1
  34. 1104 -> 2
  35. 1014 -> 2
  36. 1011 -> 3
  37. 1111 -> 4
  38. */
  39.  
  40. const int TEN = 10;
  41.  
  42. int main() {
  43. int n;
  44. cin >> n;
  45. int firstDigit = n;
  46. while (firstDigit >= TEN) {
  47. firstDigit /= TEN;
  48. }
  49. int digitsCount = 1;
  50. while (n >= TEN) {
  51. if (n % TEN == firstDigit) {
  52. ++digitsCount;
  53. }
  54. n /= TEN;
  55. }
  56. cout << digitsCount;
  57. return 0;
  58. }
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
1