「解の個数」を求めることに注意する.とりあえず,a=0, b=0はないと仮定する.a=0の時は解は1つ.それ以外の時は,判別式の値が負で解は0個, 0で解は1個(重解),正で2個となる.
def solutions(a,b,c)
if a == 0
1
else
d = b * b - 4 * a * c
if d < 0
0
else
if d == 0
1
else
2
end
end
end
end
irb(main):046:0> solutions(0,1,3)
=> 1
irb(main):047:0> solutions(1,2,1)
=> 1
irb(main):048:0> solutions(1,2,2)
=> 0
irb(main):049:0> solutions(1,2,0)
=> 2
6通りに分岐するプログラム
def median(x,y,z)
if x <= y
if y <= z
y
else
if x <= z
z
else
x
end
end
else
if x <= z
x
else
if y <= z
z
else
y
end
end
end
end
irb(main):097:0* median(3,1,2)
=> 2
irb(main):098:0> median(1,2,3)
=> 2
irb(main):099:0> median(1,3,2)
=> 2
irb(main):100:0> median(3,2,1)
=> 2
irb(main):101:0> median(2,1,3)
=> 2
irb(main):102:0> median(2,3,1)
def median(x,y,z)
if (x<=y && y<=z) || (z<=y && y<=x)
y
else
if ( z<=x && x<=y ) || ( y <=x && x <= z )
x
else
z
end
end
end