Add sqrt search example
This commit is contained in:
parent
159c720e49
commit
9da6d99c5c
|
@ -0,0 +1,35 @@
|
|||
#include "stdbool.h"
|
||||
#include <stdio.h>
|
||||
#include "math.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
bool arr[] = { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true };
|
||||
|
||||
double size = sizeof(arr) / sizeof(arr[0]);
|
||||
double sq = sqrt(size);
|
||||
sq = floor(sq);
|
||||
int i = 0;
|
||||
|
||||
for (; i < (int)size; i += (int)sq) // Find the first breakage
|
||||
{
|
||||
if (arr[i])
|
||||
{
|
||||
i -= sq;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int j = i + (int)sq;
|
||||
|
||||
for (; i < (int)size && i <= j; i++)
|
||||
{
|
||||
if (arr[i])
|
||||
{
|
||||
printf("%d", i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue