Preface: This problem is inspired by Project Euler Problem 26 and uses text from that question to explain what a recurring cycle is.
Description
A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given:
1/2 = 0.5 1/3 = 0.(3) 1/4 = 0.25 1/5 = 0.2 1/6 = 0.1(6) 1/7 = 0.(142857) 1/8 = 0.125 1/9 = 0.(1) 1/10 = 0.1
Where 0.1(6) means 0.166666..., and has a 1-digit recurring cycle. It can be seen that 1/7 has a 6-digit recurring cycle.
Create a function that can determine the length of the recurring cycle of 1/d given d.
sorry everyone, there was an issue in my reference solution used to generate the test suite. I have corrected this now.
Java + Signal processing aproach.
Ah feeling a little guilty :| ...
Unless my math (or counting) is wrong, the result of 1/17 by long division has a 16-digit (not 15) recurring cycle. I cannot find an error in my code or hand calculations. Any help?
I believe you are right, the current test results seem to use something similar to the current leading method which disregards the effect of 0's so it typically underestimates the cycle length when d>10...
I believe in the test problems the cycle lengths of 17,19,197,1977,12345 should be 16,18,98,658,822 instead...
And those are precisely the numbers I am getting.
Wikipedia agrees with you: http://en.wikipedia.org/wiki/Repeating_decimal#Cyclic_numbers
Find all elements less than 0 or greater than 10 and replace them with NaN
11255 Solvers
Create a square matrix of multiples
320 Solvers
Longest run of consecutive numbers
127 Solvers
Reverse the elements of an array
496 Solvers
Back to basics - mean of corner elements of a matrix
225 Solvers