親愛的各位居民:
我是村長,告訴大家一個壞消息,村子最近面臨缺水的問題。
這裡有一份名單,上面有村民們的年齡資料。
不同的年齡層生活用水量都不同:18歲以下的大概是1升每天,18到50歲以下的是2升每天,歲以上的是1.5升。
現在村子的水源儲備有N升,為了防患於未然,求助於大家。
如果按照目前的消耗速度,我們還能維持多久?任務來了:
寫一個函數,接收2個參數,第一個是表示儲備量N的water,第二個是表示年齡列表的N的water
,第二個是表示年齡列表的age 返回代表天數的正整數,返回-1如果村子中沒有居民(
ageOfDwellerArray為空)。
思路:首先,根據村長的話,做配置,分為未成年人,成年人,老年人三個層次。
var info = { child : {consume : 1,range : [0,18]}, adult : {consume : 2,range : [18,50]}, old : {consume : 1.5,range : [50,200]}, };
然後,根據年齡列表和上面的配置對象,計算每天的總消耗量。
最後,用總儲備量除以每天消耗量即可算出維持的天數。
function thirstyIn(water, ageOfDwellerArray) { var consumePerDay = 0; for(var i=0;i<ageOfDwellerArray.length;i++){ for(var j in info){ var type = info[j]; var range = type.range; if(ageOfDwellerArray[i] >= range[0] && ageOfDwellerArray[i] < range[1]){ consumePerDay += type.consume; break; } } } return consumePerDay ? Math.floor(water / consumePerDay) : -1; }