Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

[PROG CHALLENGE #024] Non-Corporate Edition

Name: Anonymous 2020-01-13 16:05

Write a function:

int solution(int N);

that, given a positive integer N, returns the length of its longest binary gap. The function should return 0 if N doesn't contain a binary gap.

For example, given N = 1041 the function should return 5, because N has binary representation 10000010001 and so its longest binary gap is of length 5. Given N = 32 the function should return 0, because N has binary representation '100000' and thus no binary gaps.

Name: Anonymous 2020-01-13 21:37

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int solution(int N)
{
int m=1<<30,p=-1,g=0,h=0;
while(!(N&m))m>>=1;
while(m)
{
if((N&m)==p>>1)
g++;
else
{
if(g)
g++;
if(g>h)
h = g;
g = 0;
}
p=N&m;
m>>=1;
}
return h;
}

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List