[7kyu]Frugal Pizza

該算法題來自于 codewars【語言: javascript】,翻譯如有誤差,敬請諒解~

  • 場景

你喜歡比薩,但是你更細(xì)喜歡...你的錢。當(dāng)你去當(dāng)?shù)氐谋人_店時(shí),有一件事讓你感到意外的是,盡管他們列出了每個(gè)比薩餅的尺寸和價(jià)格,但是并沒有列出每平方披薩的價(jià)格。

  • 任務(wù)
  • 寫一個(gè)函數(shù)需要兩個(gè)參數(shù) - 直徑,價(jià)格 - 并將每平方的價(jià)格返回,保留兩位小數(shù)。 (作為一個(gè)數(shù)字,而不是字符串)
  • 例如:
    pizzaPrice(7, 4.30) // 返回 0.11
  • 假設(shè)比薩是直徑均勻的圓形披薩,并使用Math.PI作為π值。
  • 如果參數(shù)不足,或者如果它們不是數(shù)字,直接返回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);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容