@dave int no=10; char ans[100]; sprintf(ans,"%d",no); cout<<ans;
On Fri, Jan 20, 2012 at 10:29 PM, Arun Vishwanathan <[email protected]>wrote: > @dave or anyone: can u pls explain the logic of n&3 in dave's solution? > why is it subtracted from n(which is divided by 4 using >>2) and what does > n& 3 indicate? > > > On Sat, May 7, 2011 at 9:38 AM, Dave <[email protected]> wrote: > >> @Umer: Do you suppose that you can convert an int into a string >> without using division or mod, either directly or indirectly? >> >> Dave >> >> On May 4, 1:12 am, Umer Farooq <[email protected]> wrote: >> > I'm surprised to see that why are you guys making this problem so >> complex. >> > This problem can be solved in two steps only. >> > >> > 1- Convert the given int into string >> > 2- Check if the last character is 0 or 5. // it yes, then return true >> else >> > return false >> > >> > for e.g. >> > >> > 125 (last character is 5 ... therefore it is divisible by 5) >> > 120 (last character is 0 ... therefore it is divisible by 5) >> > 111 (last character is 1 ... therefore it is not divisible by 5) >> > >> > The pseudo-code has been written in my above email. >> > >> > >> > >> > >> > >> > On Wed, May 4, 2011 at 1:49 AM, Dave <[email protected]> wrote: >> > > @anshu: Spoiler alert... I was thinking of something more along the >> > > line >> > >> > > int DivisibleBy5 (int n) >> > > { >> > > n = n > 0 ? n : -n; >> > > while( n > 0 ) >> > > n = (n >> 2) - (n & 3); >> > > return (n == 0); >> > > } >> > >> > > To see that it works, write n as n = 4*a + b, where 0 <= b <= 3. Then >> > > the iteration replaces n by a - b. Consider (4*a + b) + (a - b), the >> > > sum of two consecutive values of n. This simplifies to 5*a, which is a >> > > multiple of 5. Thus, n is a multiple of 5 before an iteration if and >> > > only if it also is a multiple of 5 afterwards, >> > >> > > It is clearly log n because n is replaced by a number no greater than >> > > n/4 on each iteration. >> > >> > > Examples: >> > > n = 125. The sequence of iterates is 30, 5, 0. Ergo, 125 is a multiple >> > > of 5. >> > > n = 84. The sequence of iterates is 21, 4, -1. Ergo, 84 is not a >> > > multiple of 5. >> > >> > > Dave >> > >> > > On May 3, 3:13 am, anshu <[email protected]> wrote: >> > > > algorithm: >> > >> > > > if any number(a) is divisible by 5 it can be wriiten as 4*b + b --> >> > > > this cleary shows the last two bit of a & b will be same. >> > >> > > > lets understand by an example (35)10 = (100011)2 >> > >> > > > xx1100 >> > > > + xx11 >> > > > --------- >> > > > 100011 >> > >> > > > now this clearly shows we can calculate the unknowns(x) by >> traversing >> > > > right to left >> > >> > > > code: >> > >> > > > int main() >> > > > { >> > > > int n, m; >> > > > cin >> n; >> > > > m = n; >> > >> > > > int a, b; >> > > > int i=2; >> > >> > > > a = (m&3)<<2; >> > > > b = (m&3); >> > > > m >>= 2; >> > >> > > > bool rem = 0,s,r; >> > >> > > > while (m>3) >> > > > { >> > > > r = a&(1<<i); >> > > > s = r^(m&1)^rem; >> > > > b = b|(s<<i); >> > > > a = a|(s<<(i+2)); >> > > > rem = (r&s)|(s&rem)|(r&rem) ; >> > > > i++; >> > > > m >>= 1; >> > > > } >> > >> > > > if (a+b == n) cout << "yes\n"; >> > > > else cout << "no\n"; >> > >> > > > return 0; >> > >> > > > }- Hide quoted text - >> > >> > > > - Show quoted text - >> > >> > > -- >> > > 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. >> > >> > -- >> > Umer- Hide quoted text - >> > >> > - Show quoted text - >> >> -- >> 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. >> >> > > > -- > "People often say that motivation doesn't last. Well, neither does > bathing - that's why we recommend it daily." > > -- > 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.
