[7kyu]Frugal Pizza

该算法题来自于 codewars【语言: javascript】,翻译如有误差,敬请谅解~

[7kyu]Frugal Pizza_第1张图片

  • 场景

你喜欢比萨,但是你更细喜欢...你的钱。当你去当地的比萨店时,有一件事让你感到意外的是,尽管他们列出了每个比萨饼的尺寸和价格,但是并没有列出每平方披萨的价格。

  • 任务
  • 写一个函数需要两个参数 - 直径,价格 - 并将每平方的价格返回,保留两位小数。 (作为一个数字,而不是字符串)
  • 例如:
    pizzaPrice(7, 4.30) // 返回 0.11
  • 假设比萨是直径均匀的圆形披萨,并使用Math.PI作为π值。
  • 如果参数不足,或者如果它们不是数字,直接返回0。

  • 解答
  • 其一
const pizzaPrice = (diameter, price) => {
      if (typeof diameter == 'number' && typeof price == 'number') {
        return (price/(Math.pow(diameter/2,2)* Math.PI)).toFixed(2)*1
      } else {
        return 0;
      }
}
  • 其二
function pizzaPrice(d,p) {
      return Math.round(p/(Math.PI*d*d)*400)/100||0
}
  • 其三
function pizzaPrice(diameter, price) {
      if(arguments.length!=2) return 0;
      if(typeof(arguments[0])!='number' || typeof(arguments[1])!='number') return 0;
      var area = (Math.PI)*diameter*diameter/4;
      return parseFloat((price/area).toFixed(2));
}
  • 其四
function pizzaPrice(diameter, price) {
      if(isNaN(diameter+price)) return 0;
      let cost = price/(Math.PI*diameter*diameter/4);
      return parseFloat(cost.toFixed(2));
}
  • 其五
function pizzaPrice(d, p) {
      return isNaN(d) || isNaN(p) ? 0 : +(p / (Math.PI * d * d / 4)).toFixed(2);
}

你可能感兴趣的:([7kyu]Frugal Pizza)