题解 | #求小球落地5次后所经历的路程和第5次反弹的高度#
求小球落地5次后所经历的路程和第5次反弹的高度
https://www.nowcoder.com/practice/2f6f9339d151410583459847ecc98446
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function (line) {
let totalLength = 0
function setTotalLength(x){
totalLength = x
}
let fantan = 0
function setFantan(x){
fantan = x
}
const h = parseInt(line)
solution(0,h,'top',0,h,setTotalLength,setFantan)
console.log(totalLength)
console.log(fantan)
});
function solution(time,h,location,accLength,lastH,setTotalLength,setFantan){
if(time === 5 && location === "top"){
setFantan(h)
return
}
if(time === 5 && location === "down"){
setTotalLength(accLength)
}
if(location === "top"){
// 落地
return solution(time+1,0,'down',accLength+h,h,setTotalLength,setFantan)
}
if( location === 'down'){
// 反弹
const newH = lastH/2
return solution(time,newH,'top' ,accLength+newH,newH,setTotalLength,setFantan)
}
}
查看6道真题和解析