找到一定的平均值 - Ruby,JS或Python

时间:2017-10-26 18:54:08

标签: javascript python ruby

如果这个人上班,并认为我把它扔向世界。

给定浮动,例如1.722,返回前一个整数奇数和下一个整数奇数的平均值。此浮点数的答案为2,或13之间的平均值。

编辑:如果浮点数是整数奇数(例如3.00),则答案必须将其视为要平均的两个奇数中的较低者。感谢您在评论中提出这一点。

愿部队与你同在。

2 个答案:

答案 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