int count8(int n) { if (n == 0) return 0; if ((n / 10) % 10 == 8 && n % 10 == 8) return 2 + count8(n / 10); if (n % 10 == 8) return 1 + count8(n / 10); return count8(n / 10); }
// Given a non - negative int n, compute recursively( no loops ) the count of the occurrences of 8 as a digit, // except that an 8 with another 8 immediately to its left counts double, so 8818 yields 4. ( no loops ) int count8( int n ) { if( n <= 0 ) return 0; if( n % 100 == 88 ) return 2 + count8( n / 10 ); if( n % 10 == 8 ) return 1 + count8( n / 10 ); return count8( n / 10 ); }
int main() { int n; printf("Vnesi n:"); scanf("%d", &n); printf("count8(%d) = %d\n", n, count8(n)); return 0; }