#include <stdio.h>
int count_zeros_recursive( int num)
{
int res = 0 ;
int num_without_lowest_digit = num/ 10 ;
if ( num_without_lowest_digit == 0 )
{
res = ( num == 0 ) ;
}
else
{
res = count_zeros_recursive( num_without_lowest_digit) ;
if ( num % 10 == 0 )
{
res++;
}
}
return res;
}
int main( void ) {
int nums[ ] = { 202 , 7 , 100 , 10500 , 10234 , 10000 , - 1 , - 100 , 1234567 , - 202 , 0 } ;
int i;
for ( i= 0 ; i < sizeof ( nums) / sizeof ( nums[ 0 ] ) ; ++ i)
{
printf ( "Number %d has %d zeros\n " , nums
[ i
] , count_zeros_recursive
( nums
[ i
] ) ) ; }
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgY291bnRfemVyb3NfcmVjdXJzaXZlKGludCBudW0pIAp7CiAgICBpbnQgcmVzID0gMDsKICAgIGludCBudW1fd2l0aG91dF9sb3dlc3RfZGlnaXQgPSBudW0vMTA7CgogICAgaWYobnVtX3dpdGhvdXRfbG93ZXN0X2RpZ2l0ID09IDApCiAgICB7CiAgICAgICAgcmVzID0gKG51bSA9PSAwKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICByZXMgPSBjb3VudF96ZXJvc19yZWN1cnNpdmUobnVtX3dpdGhvdXRfbG93ZXN0X2RpZ2l0KTsKICAgICAgICBpZiAobnVtICUgMTAgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgcmVzKys7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiByZXM7Cn0KCgppbnQgbWFpbih2b2lkKSB7CglpbnQgbnVtc1tdID0geyAyMDIsIDcsIDEwMCwgMTA1MDAsIDEwMjM0LCAxMDAwMCwgLTEsIC0xMDAsIDEyMzQ1NjcsIC0yMDIsIDB9OwoJaW50IGk7CgkKCWZvciAoaT0wOyBpIDwgc2l6ZW9mKG51bXMpL3NpemVvZihudW1zWzBdKTsgKytpKQoJewoJICAgIHByaW50ZigiTnVtYmVyICVkIGhhcyAlZCB6ZXJvc1xuIiwgbnVtc1tpXSwgY291bnRfemVyb3NfcmVjdXJzaXZlKG51bXNbaV0pKTsKCX0KCXJldHVybiAwOwp9Cg==