+ 2

Stuck with the Halloween Candy Challenge

I solved the challenge (https://sololearn.com/coach/4/?ref=app) and it passes the first two sample data, but it won’t pass the last three. As the input in the last 3 is hidden, I don’t know what’s wrong with my code. Here’s the code: houses = int(input()) #your code goes here result=200/houses print((round(result)) If you would help me out, I’d really appreciate it. Thanks, guys!!

12th Mar 2020, 5:17 AM
Juan Macarlupu
Juan Macarlupu - avatar
7 Respuestas
+ 6
Instead of round() use import math math.ceil() round(result) ❌ math.ceil(result) ✔️
12th Mar 2020, 5:19 AM
Utkarsh Sharma
Utkarsh Sharma - avatar
+ 3
Juan Macarlupu According to problem we need most nearest whole number so in this case ceil will work fine because round just give round off valve means 5.4 will be 5 and 5.6 will be 6 but when we use ceil we get only one value that is 6. So round (5.4) = 5 round (5.6) = 6 but ceil (5.4) = 6 ceil (5.6) = 6 that is what we need in this problem.
12th Mar 2020, 5:51 AM
A͢J
A͢J - avatar
+ 2
Thanks! would you mind briefly explaining why? I really appreciate your help!
12th Mar 2020, 5:34 AM
Juan Macarlupu
Juan Macarlupu - avatar
+ 2
just found this: Math.ceil( ) computes the ceiling function—i.e., it returns the closest integer value that is greater than or equal to the function argument. Math.ceil( ) differs from Math.round( ) in that it always rounds up, rather than rounding up or down to the closest integer. Also note that Math.ceil( ) does not round negative numbers to larger negative numbers; it rounds them up toward zero. in https://www.oreilly.com/library/view/javascript-the-definitive/0596101996/re106.html
12th Mar 2020, 5:37 AM
Juan Macarlupu
Juan Macarlupu - avatar
+ 2
Juan Macarlupu I think the problem is that round() rounds down as well... print(round(3.33)) # 3 print(math.ceil(3.33)) # 4 in the above example, round() will round the 3.33 down to give 3 But math.ceil() will give the next greatest integer after 3 that is 4. so print(round(3.001)) will give 3 but print(math.ceil(3.001)) will give 4
12th Mar 2020, 5:37 AM
Utkarsh Sharma
Utkarsh Sharma - avatar
+ 2
Thanks so much!!
12th Mar 2020, 5:38 AM
Juan Macarlupu
Juan Macarlupu - avatar
0
For C# guys the Method name is Math.Ceiling not Math.ceil !
20th Apr 2020, 1:19 PM
Yahya LAZREK
Yahya LAZREK - avatar