【JavaScript——⽜客⽹算法No.HJ22】汽⽔瓶(三个空汽⽔瓶可以换⼀瓶汽
⽔,问。。。
@No.HJ22 汽⽔瓶
@problem description:
有这样⼀道智⼒题:“某商店规定:三个空汽⽔瓶可以换⼀瓶汽⽔。⼩张⼿上有⼗个空汽⽔瓶,她最多可以换多少瓶汽⽔喝?”答案是5瓶,⽅法如下:先⽤9个空瓶⼦换3瓶汽⽔,喝掉3瓶满的,喝完以后4个空瓶⼦,⽤3个再换⼀瓶,喝掉这瓶满的,这时候剩2个空瓶⼦。然后你让⽼板先借给你⼀瓶汽⽔,喝掉这瓶满的,喝完以后⽤3个空瓶⼦换⼀瓶满的还给⽼板。如果⼩张⼿上有n个空汽⽔瓶,最多可以换多少瓶汽⽔喝? @input description:
输⼊⽂件最多包含10组测试数据,每个数据占⼀⾏,仅包含⼀个正整数n(1<=n<=100),表⽰⼩张⼿上的空汽⽔瓶数。n=0表⽰输⼊结束,你的程序不应当处理这⼀⾏。
@output description:
对于每组测试数据,输出⼀⾏,表⽰最多可以喝的汽⽔瓶数。如果⼀瓶也喝不到,输出0。
⽰例
@input:
3
草率的爆破10
81
@output:
1
5
40
今天写完这个算法打开排⾏榜⼀看,欧呦?居然是第⼀❀
果然代码才能使我真正的快乐,哈哈哈嗝~
3d蓝光播放器
// ⽅法⼀:
while(num =readline()){
console.log(~~(num /2))
}
算法分析:
没错,真⼀⾏,我感觉这应该是最简单的⽅案了,挑战全⽹没有之⼀
其实我第⼀次解题⽤的是第⼆种写法,这个⽅案是我分析每次代码的结果后总结出来的,我真是个⼩机灵⿁~
每次结果都跟最开始的空瓶⼦数的⼀半有关嗯??
也对,每次兑换都是先减去三个,然后再加上⼀个,也就等价于两个空瓶⼦可以喝⼀瓶。 Code_Zevin_J —— 2020-08-26 21:29:55
悠悠球轴承再贴出来我第⼀次的代码吧,再正常不过的逻辑(最笨的算法,呜呜呜~)
// ⽅法⼆:
while(num =readline()){
var result =0;
盆角齿while(num >2){
result +=~~(num /3)
双面斜纹布num = num %3+~~(num /3)
}
console.log(num ===2? result +1: result)
}
算法分析:
这道实际应⽤题的核⼼就是⼀个while循环:
当剩余空瓶⼦数量(num)⼤于2的时候就继续执⾏循环:
每次循环都先兑换⼀波空瓶⼦:~~(num / 3) ,空瓶⼦数除以3后结果向下取整,结果累加到result中;
现在剩下的空瓶⼦数量就包括两部分:兑换剩下的空瓶⼦和兑换来的阔落喝掉后新产⽣的;
滚珠丝杠电动推杆跳出循环后,在输出的时候还需要注意最后⼀个条件:
剩余空瓶⼦数恰巧有两个时,居然可以和⽼板借⼀个空瓶⼦,哈哈,⽼板好⼈~
所以⼀个三⽬运算符搞定~
Code_Zevin_J —— 2020-08-26 21:29:55