Continued fraction/Arithmetic/Construct from rational number: Difference between revisions

Content added Content deleted
No edit summary
Line 24: Line 24:


=={{header|Ruby}}==
=={{header|Ruby}}==
=begin
Generate a continued fraction from a rational number

Nigel Galloway, February 4th., 2013
=end
<lang ruby>
<lang ruby>
def r2cf(n1,n2)
while n2 > 0
t1 = n1/n2; t2 = n2; n2 = n1 - t1 * n2; n1 = t2; yield t1
end
end
</lang>
</lang>
===Testing===
1/2
<lang ruby>r2cf(1,2) {|n| print "#{n} "}</lang>
{{out}}
<pre>
0 2
</pre>
3
<lang ruby>r2cf(3,1) {|n| print "#{n} "}</lang>{{out}}
<pre>
3
</pre>
23/8
<lang ruby>r2cf(23,8) {|n| print "#{n} "}</lang>
{{out}}
<pre>
2 1 7
</pre>
13/11
<lang ruby>r2cf(13,11) {|n| print "#{n} "}</lang>
{{out}}
<pre>
1 5 2
</pre>
22/7
<lang ruby>r2cf(22,7) {|n| print "#{n} "}</lang>
{{out}}
<pre>
3 7
</pre>
1.4142
<lang ruby>r2cf(14142,10000) {|n| print "#{n} "}</lang>
{{out}}
<pre>
1 2 2 2 2 2 1 1 29
</pre>
1.4142
<lang ruby>r2cf(141421,100000) {|n| print "#{n} "}</lang>
{{out}}
<pre>
1 2 2 2 2 2 2 3 1 1 3 1 7 2
</pre>
1.414214
<lang ruby>r2cf(1414214,1000000) {|n| print "#{n} "}</lang>
{{out}}
<pre>
1 2 2 2 2 2 2 2 3 6 1 2 1 12
</pre>
1.4142136
<lang ruby>r2cf(14142136,10000000) {|n| print "#{n} "}</lang>
{{out}}
<pre>
1 2 2 2 2 2 2 2 2 2 6 1 2 4 1 1 2
</pre>