diff --git a/Submission/Shivam Tripathi/Add Binary/Add Binary.png b/Submission/Shivam Tripathi/Add Binary/Add Binary.png new file mode 100644 index 0000000..57ec2a6 Binary files /dev/null and b/Submission/Shivam Tripathi/Add Binary/Add Binary.png differ diff --git a/Submission/Shivam Tripathi/Add Binary/solution.c b/Submission/Shivam Tripathi/Add Binary/solution.c new file mode 100644 index 0000000..0306763 --- /dev/null +++ b/Submission/Shivam Tripathi/Add Binary/solution.c @@ -0,0 +1,40 @@ +#include +#include +#include + +char* addBinary(char* a, char* b) { + int lenA = strlen(a); + int lenB = strlen(b); + int maxLen = lenA > lenB ? lenA : lenB; + + + char* result = (char*)malloc(maxLen + 2); + result[maxLen + 1] = '\0'; + + int i = lenA - 1; + int j = lenB - 1; + int k = maxLen; + int carry = 0; + + while (i >= 0 || j >= 0 || carry > 0) { + int sum = carry; + if (i >= 0) sum += a[i--] - '0'; + if (j >= 0) sum += b[j--] - '0'; + + result[k--] = (sum % 2) + '0'; + carry = sum / 2; + } + + + char* finalResult = result + k + 1; + + + if (*finalResult == '\0') { + + finalResult = result + maxLen; + finalResult[0] = '0'; + finalResult[1] = '\0'; + } + + return finalResult; +} diff --git a/Submission/Shivam Tripathi/Power of Two/Power Of Two.png b/Submission/Shivam Tripathi/Power of Two/Power Of Two.png new file mode 100644 index 0000000..a8a67b3 Binary files /dev/null and b/Submission/Shivam Tripathi/Power of Two/Power Of Two.png differ diff --git a/Submission/Shivam Tripathi/Power of Two/solution.c b/Submission/Shivam Tripathi/Power of Two/solution.c new file mode 100644 index 0000000..c66cf72 --- /dev/null +++ b/Submission/Shivam Tripathi/Power of Two/solution.c @@ -0,0 +1,8 @@ +#include + +bool isPowerOfTwo(int n) { + if (n <= 0) { + return false; + } + return (n & (n - 1)) == 0; +}