#!/usr/bin/ruby $perc = [0.1, 0.15, 0.25, 0.28, 0.33, 0.35, 0.396]; $data = [ [9075, 36900, 89350, 186350, 405100, 406750], [18150, 73800, 148850, 226850, 405100, 457600], [12950, 49400, 127550, 206600, 405100, 432200], [9075, 36900, 74425, 113425, 202550, 228800]]; def calc(id, val) #~ puts id.to_s + "," + val.to_s; k=0; #~ p $data[id]; while $data[id][k] < val do k += 1 if k >= $data[id].size break end end return (val * $perc[k]).floor; end case gets.chomp when "Single" puts calc(0, gets.chomp.to_i) when "Married joint filer" puts calc(1, gets.chomp.to_i) when "Surviving spouse" puts calc(1, gets.chomp.to_i) when "Head of household" puts calc(2, gets.chomp.to_i) when "Married filing separately" puts calc(3, gets.chomp.to_i) end