--Jason_Whitney_tsqlchallenge_20.sql
with cte (ID, FiboNumber, Fibo2, NumRepeats)
as
(
select 1
, cast(1 as bigint)
, cast(0 as bigint)
, 0
union all
select ID + 1
, FiboNumber + Fibo2
, FiboNumber
, sign(charindex('11', FiboNumber + Fibo2))
+ sign(charindex('22', FiboNumber + Fibo2))
+ sign(charindex('33', FiboNumber + Fibo2))
+ sign(charindex('44', FiboNumber + Fibo2))
+ sign(charindex('55', FiboNumber + Fibo2))
+ sign(charindex('66', FiboNumber + Fibo2))
+ sign(charindex('77', FiboNumber + Fibo2))
+ sign(charindex('88', FiboNumber + Fibo2))
+ sign(charindex('99', FiboNumber + Fibo2))
+ sign(charindex('00', FiboNumber + Fibo2))
from cte
where ID < 92
)
select NumRepeats
, FiboNumber
from (select NumRepeats
, FiboNumber
, row_number() over(partition by NumRepeats order by FiboNumber) Rank
from cte
where NumRepeats > 0) a
where Rank <= 5
Did you find something incorrect/wrong with this solution? Take a few seconds to Report It.
Did you understand how this solution work? If you find it difficult to understand, you can Request an Explanation or you can Write an explanation to help others better understand this solution.