Since we are given numerator 'n' and denominator 'd' separately already. and
considering n and d as integers and d!=0 we can safely assume n/d as either
a terminating fraction or a non terminating but recurring fraction, in which
case we have to find the recurring digits of the fraction.

Now what I suggested was almost same as Ravi's approach.
take a Set 'S' keeping tuples (R,Q) where R is the current remainder and Q
is the factor such that d*Q is subtracted from the number to get R.
In other words. if at an intermediate step of division we have 'a' as the
divident left then Q=floor(a/d) and R=a%d

Keep dividing 'n' by 'd' like it is done manually. After every division
check-
1. If the current remainder is not present in 'S' then add current remainder
'R' and corresponding quotient 'Q' in the set
2. If R is found in the set S, then all the following entries in the set
until end will constitute the recurring digits.
taking Ravi's example:-

Example:
  7) 9 (1.*285714*28                            S=[]
       7
       --
        20                                           S=[(2,2)]
         14
         ---
           60                                        S=[(2,2), (6,8)]
            56
             ---
              40                                     S=[(2,2), (6,8), (4,5)]
              35
              ---
                 50                                  S=[(2,2), (6,8), (4,5),
(5,7)]
                  49
                   ---
                     10                              S=[(2,2), (6,8), (4,5),
(5,7), (1,1)]
                        7
                     ----
                         30                          S=[(2,2), (6,8), (4,5),
(5,7), (1,1), (3,4)]
                          28                               ^
                          ----                               |
                              20                     2 is found in S here,
so recurring digits are "285714"
                               14

  ----
                                   60
                                    56
                                         repeats


hope its clear


Anurag Sharma


On Sat, Jun 12, 2010 at 4:02 PM, divya jain <sweetdivya....@gmail.com>wrote:

> @anurag
>
> i dint get ur approach..which numerator n denominator u r talking
> about..plz explain.. thanks in advance
>
> On 11 June 2010 08:57, Anurag Sharma <anuragvic...@gmail.com> wrote:
>
>> Please note that the fractional repeating part is recurring. and so that
>> 4th temporary variable assignment will be this way->
>> temp=x*10000 - x= 233456.34563456...  - 23.34563456.... = 233433.0  ( mark
>> the fractional part is 0 now since the infinitely repeating 3456... will get
>> cancelled)
>> In this  case you can say that 4 places are repeating. But yes its
>> according to the maths and in any programming language whenever you divide
>> the numerator and denominator you wont get this infinitely recurring decimal
>> places.
>>
>> @divya, also your approach wont work if the recurring fractional digits
>> start after few places from the decimal like in the case of
>> 23.123345634563456....  (note here after the decimal place 123 is not
>> repeating while 3456.. after this 123 is repeating.)
>>
>> What I suggest in this case is keep dividing the numerator by denominator
>> and at every step keep inserting the tupple (remainder, quotient) of that
>> division step in a set. and before inserting in the set check whether it
>> already exists. If yes then the all the quotients following from that point
>> (including the point) will be recurring.
>>
>> Regards,
>>
>> Anurag Sharma
>>
>>
>>
>> On Thu, Jun 10, 2010 at 8:25 AM, Veer Sharma 
>> <thisisv...@rediffmail.com>wrote:
>>
>>> Seems it wont work...
>>> x=23.34563456
>>>
>>> temp = x*100 -x = 233.4563456 - 23.34563456 = 210.11071104
>>> temp = x*100 -x = 2334.563456 - 23.34563456 = 2311.21782144
>>> temp = x*1000 -x =  23345.63456 - 23.34563456 = 23322.28892544
>>> temp = x*10000 -x =  233456.3456 - 23.34563456 = 233432.99996544
>>> temp = x*100000 -x = 2334563.456 - 23.34563456 = 2334540.11036544
>>>
>>> ...
>>>
>>> On Jun 9, 11:24 pm, Anurag Sharma <anuragvic...@gmail.com> wrote:
>>> > multiply the original number x=23.34563456
>>> >
>>> > Anurag Sharma
>>> >
>>> > On Wed, Jun 9, 2010 at 10:36 PM, Veer Sharma <
>>> thisisv...@rediffmail.com>wrote:
>>> >
>>> >
>>> >
>>> > > One question:
>>> >
>>> > > No x = 23.34563456
>>> > > temp = x X 10 = 233.4563456
>>> > > temp = temp - x = 210.11071104
>>> > > decimal part zero? No.
>>> > > Now multiply the no. with 100. Which no? original x (= 23.34563456)
>>> or
>>> > > new no. temp (=210.11071104)?
>>> >
>>> > > On Jun 9, 8:12 pm, divya jain <sweetdivya....@gmail.com> wrote:
>>> > > > multiply the no. with 10 nd store in temp. now subtract no from
>>> temp.
>>> > > check
>>> > > > if the decimal part is zero if yes.  then 1st digit after decimal
>>> is
>>> > > > recurring. if no. multiply the no with 100 and repeat . if this
>>> time
>>> > > decimal
>>> > > > part is zero then 2 digits after decimal r recurring nd so on..
>>> >
>>> > > > On 8 June 2010 21:45, Veer Sharma <thisisv...@rediffmail.com>
>>> wrote:
>>> >
>>> > > > > You have a Numerator and Denominator. After division you might
>>> get a
>>> > > > > recurring decimal points float as the answer.
>>> >
>>> > > > > Problem is: You need to identify the recurring part for a given
>>> > > > > decimal no?
>>> > > > > For example 23.34563456 ...
>>> > > > > return 3456
>>> >
>>> > > > > --
>>> > > > > You received this message because you are subscribed to the
>>> Google
>>> > > Groups
>>> > > > > "Algorithm Geeks" group.
>>> > > > > To post to this group, send email to algoge...@googlegroups.com.
>>> > > > > To unsubscribe from this group, send email to
>>> > > > > algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
>>> <algogeeks%2bunsubscr...@googlegroups­.com>
>>> > > <algogeeks%2bunsubscr...@googlegroups­.com>
>>> > > > > .
>>> > > > > For more options, visit this group at
>>> > > > >http://groups.google.com/group/algogeeks?hl=en.-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 algoge...@googlegroups.com.
>>> > > To unsubscribe from this group, send email to
>>> > > algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
>>> <algogeeks%2bunsubscr...@googlegroups­.com>
>>> > > .
>>> > > For more options, visit this group at
>>> > >http://groups.google.com/group/algogeeks?hl=en.- 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 algoge...@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
>>> .
>>> 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 algoge...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
>> .
>> 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 algoge...@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
> .
> 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 algoge...@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to