# help required urgent!!

• 05-27-2009
ikj
help required with my code on double base number representation !!urgent!!
i want to print the double base representation of a number
ie if my number is 38 i shud get 36 + 2 and for 655 i shud get 648 + 6 + 1.
here's my code:

Code:

```unsigned long bs(unsigned long a[],unsigned long d, unsigned long beg, unsigned long end, unsigned long x) {        int mid;        mid=(beg+end)/2;        if (x<a[mid])        {                      end=mid-1;                      bs(a,d,beg,end,x);        }        else if(x<a[mid])        {                      beg=mid+1;                      bs(a,d,beg,end,x);        }     else if(x>a[end])     {    cout<<a[end]<<" + ";            return a[end];      }     else if(x==a[mid])     {            cout<<"FOUND!!\n";           return a[mid];     } } void alg(unsigned long a[],unsigned long d, unsigned long x) {     unsigned long num;     num=(x-bs(a,d,0,30,x));     if (num>0)         alg(a,d,num);   } main() {       int c,n,d;       d=c=(unsigned long)(pow(32,2));       unsigned long a[d],b[c],t,x,y;       d=c=0;       a[0]=0;       b[0]=0;       for(int i=0;i<32;i++)       {           for(int j=0;j<32;j++)           {               b[c]=(unsigned long)(pow(2,i)*pow(3,j));               if(j==0 || ULONG_MAX/pow(3,j)>pow(2,i))               {                 a[++d]=b[c++];                 // cout<<i<<"\t"<<j<<"\t"<<a[d]<<endl;               }               else               {                   break;               }           }       }     sort(a,a+d);     cout<<"enter element:";     cin>>x;     cout<<"its representation is :"<<endl;     alg(a,d,x);     system("PAUSE"); }```
wat im doing in my code for alg() is im finding the element in the array using bs()
if the elemnt i want is in the array im printing that otherwise im finding the element that is closest (from the lesser side) to it and finding the difference ie (x - closest number to x) and calling alg for the difference and so on.
ie for 655 the closest elemnt is 648 and 655-648 is 7 , calling alg with 7 gives the closest elemnt as 6 n 7-6 is 1 n so on..
in my bs() code im returning the elemnt or the one which is closest to it. but somehow its not printing that elemnt n neither is it returning it.

• 05-28-2009
hk_mp5kpdw
Welcome to the boards, that said...

From the forum guidelines:
Quote:

Tips for Efficient and Successful Posting

1. Don't use all caps.

2. Use descriptive subject lines. Do not put URGENT!, or NEED HELP NOW, etc. in your title; it will not make people look at it any faster. Doing this makes many old time helpers on this board not look at the post at all.
• 05-28-2009
tabstop
So what you're saying is that your bs function is broken. And if you look at it, you will quickly see that that is the case -- the base case must always be checked first.