#include <stdio.h>
#include <assert.h>
#include <limits.h>
#include <math.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* readline();
// Complete the embedNumberInAnotherNumber function below.
void convertToBinary(int n,char toBin[])
{
int rem;
int i = 0;
while(n>0)
{
rem = n%2;
toBin[i++] = rem;
n = n/2;
}
toBin[i] = '\0';
for(int i
= 0;i
<strlen(toBin
);i
++)
i=0;
int j = len-1;
while(i<=j)
{
char temp = toBin[i];
toBin[i] = toBin[j];
toBin[j] = temp;
i++;j--;
}
for(int i
= 0;i
<strlen(toBin
);i
++) }
int embedNumberInAnotherNumber(int numberA, int numberB, int p, int q) {
char numA[33],numB[33];
char nA[33],nB[33];
convertToBinary(numberA,numA);
convertToBinary(numberB,numB);
int i=0;
int index = 0;
while(numA
[i
] == '0' && i
<strlen(numA
)) {
i++;
}
{
nA[index++] = numA[i++];
}
nA[index] = '\0';
i=0;
index = 0;
while(numB
[i
] == '0' && i
<strlen(numB
)) {
i++;
}
{
nB[index++] = numB[i++];
}
nB[index] = '\0';
for(int i=p;i<=q;i++)
{
nA[i] = nB[i];
}
int mult = 1;
int res = 0;
for(int i
=strlen(nA
)-1;i
>=0;i
--) {
res = res+nA[i]*mult;
mult = mult*2;
}
return res;
}
int main(void) {
// your code goes here
embedNumberInAnotherNumber(44,1,0,0);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojaW5jbHVkZSA8YXNzZXJ0Lmg+CiNpbmNsdWRlIDxsaW1pdHMuaD4KI2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPHN0ZGJvb2wuaD4KI2luY2x1ZGUgPHN0ZGRlZi5oPgojaW5jbHVkZSA8c3RkaW50Lmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmNoYXIqIHJlYWRsaW5lKCk7CgovLyBDb21wbGV0ZSB0aGUgZW1iZWROdW1iZXJJbkFub3RoZXJOdW1iZXIgZnVuY3Rpb24gYmVsb3cuCgp2b2lkIGNvbnZlcnRUb0JpbmFyeShpbnQgbixjaGFyIHRvQmluW10pCnsKICAgIGludCByZW07CiAgICBpbnQgaSA9IDA7CiAgICB3aGlsZShuPjApCiAgICB7CiAgICAgICAgcmVtID0gbiUyOwogICAgICAgIHRvQmluW2krK10gPSByZW07CiAgICAgICAgbiA9IG4vMjsKICAgIH0KICAgIHRvQmluW2ldID0gJ1wwJzsKICAgIAogICAgZm9yKGludCBpID0gMDtpPHN0cmxlbih0b0Jpbik7aSsrKQogICAgICAgIHByaW50ZigiJWMiLHRvQmluW2ldKTsKICAgIHByaW50ZigiXG4iKTsKCiAgICBpbnQgbGVuID0gc3RybGVuKHRvQmluKTsKICAgIGk9MDsKICAgIGludCBqID0gbGVuLTE7CiAgICB3aGlsZShpPD1qKQogICAgewogICAgICAgIGNoYXIgdGVtcCA9IHRvQmluW2ldOwogICAgICAgIHRvQmluW2ldID0gdG9CaW5bal07CiAgICAgICAgdG9CaW5bal0gPSB0ZW1wOwogICAgICAgIGkrKztqLS07CiAgICB9CgogICAgZm9yKGludCBpID0gMDtpPHN0cmxlbih0b0Jpbik7aSsrKQogICAgICAgIHByaW50ZigiJWMiLHRvQmluW2ldKTsKfQoKaW50IGVtYmVkTnVtYmVySW5Bbm90aGVyTnVtYmVyKGludCBudW1iZXJBLCBpbnQgbnVtYmVyQiwgaW50IHAsIGludCBxKSB7CgogICAgY2hhciBudW1BWzMzXSxudW1CWzMzXTsKICAgIGNoYXIgbkFbMzNdLG5CWzMzXTsKICAgIGNvbnZlcnRUb0JpbmFyeShudW1iZXJBLG51bUEpOwogICAgY29udmVydFRvQmluYXJ5KG51bWJlckIsbnVtQik7CiAgICAKICAgIGludCBpPTA7CiAgICBpbnQgaW5kZXggPSAwOwogICAgd2hpbGUobnVtQVtpXSA9PSAnMCcgJiYgaTxzdHJsZW4obnVtQSkpCiAgICB7CiAgICAgICAgaSsrOwogICAgfQogICAgd2hpbGUoaTxzdHJsZW4obnVtQSkpCiAgICB7CiAgICAgICAgbkFbaW5kZXgrK10gPSBudW1BW2krK107CiAgICB9CiAgICBuQVtpbmRleF0gPSAnXDAnOwoKICAgIGk9MDsKICAgIGluZGV4ID0gMDsKICAgIHdoaWxlKG51bUJbaV0gPT0gJzAnICYmIGk8c3RybGVuKG51bUIpKQogICAgewogICAgICAgIGkrKzsKICAgIH0KICAgIHdoaWxlKGk8c3RybGVuKG51bUIpKQogICAgewogICAgICAgIG5CW2luZGV4KytdID0gbnVtQltpKytdOwogICAgfQogICAgbkJbaW5kZXhdID0gJ1wwJzsKCiAgICBmb3IoaW50IGk9cDtpPD1xO2krKykKICAgIHsKICAgICAgICBuQVtpXSA9IG5CW2ldOwogICAgfQoKICAgIGludCBtdWx0ID0gMTsKICAgIGludCByZXMgPSAwOwogICAgZm9yKGludCBpPXN0cmxlbihuQSktMTtpPj0wO2ktLSkKICAgIHsKICAgICAgICByZXMgPSByZXMrbkFbaV0qbXVsdDsKICAgICAgICBtdWx0ID0gbXVsdCoyOwogICAgfQogICAgcmV0dXJuIHJlczsKfQoKaW50IG1haW4odm9pZCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJZW1iZWROdW1iZXJJbkFub3RoZXJOdW1iZXIoNDQsMSwwLDApOwoJcmV0dXJuIDA7Cn0K