Sunny Don.t you think your method is very slow as you are checking every number that for number of set bits and if it is a equal to desired than you are decreasing n i.e. required number. Even if when n=1 and k=32 your solution will start with 0 and go up to 2^31 but the answer could be found in single iteration.
So is there any way to do it a little faster. On Sun, Jul 10, 2011 at 1:08 PM, Sunny T <[email protected]> wrote: > sorry ankit... ur solution works only for.. k=1 and n=3... > try for k=2 and n=6.. then the output should be 12... > similarly for k=3 n=1.. the output should be...7... > > so plz correct ur code.. > > > On Sun, Jul 10, 2011 at 12:38 PM, ankit sambyal <[email protected]>wrote: > >> Here is my approach : >> >> int main() >> { >> int a=1,k=1,n=3; >> while(k>1) >> { >> k--; >> a=(a<<1) | 1; >> } >> while(n>1) >> { >> a=a<<1; >> n--; >> } >> printf("%d",a); >> return 0; >> } >> >> On Sat, Jul 9, 2011 at 11:14 PM, anurag <[email protected]> >> wrote: >> > You are given two integers n and k >> > k signifies number of set bits i.e. if k = 3 then output should have 3 >> > set bits. >> > Output should be the nth smallest number having k set bits >> > for example >> > k=1 and n=3 >> > output should be >> > 4 (00000100) >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups "Algorithm Geeks" group. >> > To post to this group, send email to [email protected]. >> > To unsubscribe from this group, send email to >> [email protected]. >> > For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> > >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> >> > > > -- > Warm Regards, > Sunny T > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
