該算法題來自于 codewars【語言: javascript】,翻譯如有誤差食棕,敬請諒解~
- 場景
你喜歡比薩朗和,但是你更細(xì)喜歡...你的錢。當(dāng)你去當(dāng)?shù)氐谋人_店時簿晓,有一件事讓你感到意外的是眶拉,盡管他們列出了每個比薩餅的尺寸和價格,但是并沒有列出每平方披薩的價格憔儿。
- 任務(wù)
- 寫一個函數(shù)需要兩個參數(shù) - 直徑忆植,價格 - 并將每平方的價格返回,保留兩位小數(shù)。 (作為一個數(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);
}