From 9da6d99c5c12f75922d447d2fe198b334f1066ef Mon Sep 17 00:00:00 2001 From: baz Date: Wed, 28 Feb 2024 17:05:53 +0000 Subject: [PATCH] Add sqrt search example --- sqrt/main.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 sqrt/main.c diff --git a/sqrt/main.c b/sqrt/main.c new file mode 100644 index 0000000..1e66801 --- /dev/null +++ b/sqrt/main.c @@ -0,0 +1,35 @@ +#include "stdbool.h" +#include +#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; +} \ No newline at end of file