如果这个人上班,并认为我把它扔向世界。
给定浮动,例如1.722
,返回前一个整数奇数和下一个整数奇数的平均值。此浮点数的答案为2
,或1
与3
之间的平均值。
编辑:如果浮点数是整数奇数(例如3.00
),则答案必须将其视为要平均的两个奇数中的较低者。感谢您在评论中提出这一点。
愿部队与你同在。
答案 0 :(得分:1)
这是Ruby的工作答案。
def calculate_the_things(float)
gt = 0
if float % 1 == 0
return (float + (float + 2))/2
else
lt = 0
end
rounded = float.round
rounded > result ? gt = rounded + 1 : lt = rounded - 1
if gt % 2 == 0
gt += 1
end
if lt % 2 == 0
lt -= 1
end
(gt + lt) / 2
end
修改强>
根据UchihaItachi的模式,这是简洁的Ruby答案:
def calculate_the_things(float)
2 * (float.floor/2.0).ceil
end
这是简洁的Python答案,遵循相同的原则:
import math
def calculate_average(a):
2 * math.ceil(math.floor(a) / 2)
答案 1 :(得分:1)
虽然我认为这个问题属于codegolf堆栈交换, 我将在javascript中提供答案
function findAverage (a){
return 2*Math.floor(Math.ceil(a)/2);
}
编辑:如果它是一个奇数并被视为2个数字中的较低者,我只需更改天花板和地板功能的顺序
function findAverage (a){
return 2*Math.ceil(Math.floor(a)/2);
}
它将为3.00
提供4