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. Note that mod (%) by 10 yields the rightmost digit (126 % 10 is 6), while divide (/) by 10 removes the rightmost digit (126 / 10 is 12).
count8(8) → 1
count8(818) → 2
count8(8818) → 4
public int count8(int n) {
if(n==0)
{
return 0;
}
else if(n%10==8)
{
int temp = n/10;
if(temp%10==8)
{
return (2+ count8(n/10));
}
return (1+ count8(n/10));
}
else
{
return count8(n/10);
}
}
No comments:
Post a Comment