+ 1

Snail in the Well Question?

Iā€™m really scratching my head, trying to figure this one out, because it works in some cases, but not in others. Any tips of how to fix this? Code Is below: function main() { var depth = parseInt(readLine(), 10); //your code goes here day = 0; for (y=0; y<depth; y+=7){ if (y>=depth){ break; } else{ y-=2; day++; } } console.log(day); }

4th Nov 2022, 7:17 AM
Stephen G
Stephen G - avatar
5 Answers
+ 1
//because you are not counting last day.. Check this code.. Is what I mean. var depth = parseInt(readLine(), 10); day = 0; for (y=0 ; ; ) { y+=7; day++; if (y>=depth) { console.log(day); break; } else{ y-=2; } }
6th Nov 2022, 8:56 AM
Jayakrishna šŸ‡®šŸ‡³
+ 4
First add 7 feets, if not reached depth, subtract 2. In any case, increment day. day++ ; irrespective of y value. Add it in outside if blocks.. Also add y+=7 inside loop, before if block.
4th Nov 2022, 8:00 AM
Jayakrishna šŸ‡®šŸ‡³
+ 1
Ahh i see, so as far as writing the y+=7 inside the conditionsā€¦ when does this execute,exactly? (Is it the end of each iteration)
4th Nov 2022, 9:30 AM
Stephen G
Stephen G - avatar
+ 1
I changed my code to this and it worked (though im not exactly sure why I needed to set the day as =1) { var depth = parseInt(readLine(), 10); //my code day = 1; for (y=0; y<=depth; ){ y+=7; if (y>=depth){ console.log(day); break; } else{ y-=2; day++; } } }
4th Nov 2022, 11:16 AM
Stephen G
Stephen G - avatar
+ 1
Actually, after a second thought, it makes sense logically because otherwise calculating a day 0 would skew the results unnecessarily.
4th Nov 2022, 1:37 PM
Stephen G
Stephen G - avatar