+ 4

Transportation C++

The transportation question makes 0 sense to me. 126 passengers, 50 people per bus. whats the remainder on the last bus (im assuming most people have seen this problem) answer is 24. however the code written to get 24 is incorrect somehow. int total = 126; int a = total % 50; int b = 50 - a; cout << b; the test case say that the outcome is actually 38 for some reason and the 2nd test case says the outcome is 19 and none of those numbers factor into this at all! the code that worked was int input; cin >> input; cout << 50 - input % 50; ^^^^^^^^^^^^^ This makes even less sense unless we're supposed to input 126 i think. I just want to understand, what am i not understanding about this whole thing?

2nd Jan 2021, 5:09 AM
Warlock Kadash
Warlock Kadash - avatar
13 Réponses
+ 6
Warlock Kadash Your code output is dependent on the challenge's input. see and try this: https://code.sololearn.com/cN9U512B13kt/?ref=app
3rd Jan 2021, 2:10 AM
noteve
noteve - avatar
+ 5
In challenges, every input is different in every test cases. To get inputs: int x; cin >> x; Then it is up to you how you will make this work by getting the input and to get the expected output. So whatever the inputs may be, it will always satisfy the expected output. If you have more questions, feel free to ask. Happy Coding! And example of getting input using cin (console in) https://code.sololearn.com/ck1WsKCSag50/?ref=app And I also explained here in this past thread why you should get inputs in challenges. https://www.sololearn.com/Discuss/2647499/?ref=app
2nd Jan 2021, 5:21 AM
noteve
noteve - avatar
+ 3
The first test case provides 12 as the input, not 126. So the expected output of 38 (50 - 12%50) is correct.
2nd Jan 2021, 5:34 AM
Brian
Brian - avatar
+ 3
A simple three lines of code implementation. First, you use the modulus function to find the remainder, which are the passengers on the last bus. Then, to find the empty seats, you use bus capacity minus away the last passengers. https://code.sololearn.com/cAsIKRZH3quK/?ref=app
7th Jan 2021, 6:12 PM
Lam Wei Li
Lam Wei Li - avatar
+ 3
Brian Thanks a lot I tried using modulo but I got confused I knew I could do it without loop cos d challenge is b4 loops. Thanks again
19th Mar 2022, 9:33 PM
Olufikayomi Jetawo
+ 2
《 Nicko12 》 OKAY! I get it now! the "cin" is used for getting the user input and that's what the question is asking for! I thought the question wanted you to show the work for reaching the answer of 24 empty seats! I now understand it wants you to make a program for finding the answer to not only the the sample but all of the test cases! That's what wasn't making sense to me! All the test cases can be solved be solved with 1 program and I am supposed to make that one program! Thank you for all your help!
3rd Jan 2021, 3:59 AM
Warlock Kadash
Warlock Kadash - avatar
+ 2
examples are provided for clarification sololearn checks your code with 5 or 6 different inputs (with different data to test various possibilities) essentially your code will run 5 or 6 times if your code is good enough and the output matches their expected input you win the challange. here is code with a few comments to explain what each line does. int waiting = 0; // define variable int seats =0; cin >> waiting; //get total waiting as an input value seats = waiting % 50; //mod operator will return seats filled in last bus cout << 50 - seats ; //total seats(50) - occupied seats is the expected answer
26th Jan 2021, 5:16 AM
LKScoder
LKScoder - avatar
+ 1
Okay I wrote the code in a separate IED so I could look at it better. I understand where 38 comes from now but test case 2 wants the output to be 19 and I don't understand where that factors in and how it relates to 24 empty seats.
3rd Jan 2021, 1:58 AM
Warlock Kadash
Warlock Kadash - avatar
+ 1
Finally solved it #include <iostream> using namespace std; int main() { //your code goes here int a; int b = 50; int seatLeft; cin>>a; if(a<50){ seatLeft =50 - a; cout<< seatLeft ; } else{ while(a>50){ a = a - 50; } seatLeft = 50 - a; cout<< seatLeft ; } return 0; }
19th Mar 2022, 7:18 PM
Olufikayomi Jetawo
+ 1
Fikayo Jetawo good job! It is a tough one for many people. Many struggle because they miss the tip given in the highlighted box about using the modulo (%) operator. It looks like you missed it, too, because I do not see it in your code. The modulo operator can replace the while loop that repeatedly subtracts 50 until it finds a remainder. You can get the exact same result with a single operator! All this code: if(a<50){ seatLeft = 50 - a; cout<< seatLeft; } else{ while(a>50){ a = a - 50; } seatLeft = 50 - a; cout<< seatLeft; } Simplifies to two lines (or just one if you skip using the seatLeft variable and put the expression in the cout statement): seatLeft = 50 - a%50; cout << seatLeft; That's the power of optimizing with modulo!
19th Mar 2022, 9:28 PM
Brian
Brian - avatar
+ 1
It's funny that there was a single line solution 😆😄 #include <iostream> using namespace std; int main() { //your code goes here int a; int b = 50; cin>>a; int seatLeft = 50 - a%50; cout<< seatLeft ; return 0; }
19th Mar 2022, 9:42 PM
Olufikayomi Jetawo
+ 1
Darkhost the question asked 'Given the number of passengers waiting in the bus station as input'
19th Mar 2022, 9:45 PM
Olufikayomi Jetawo
0
The question is asked unusually. The question is supposed to help the user understand that the bus station wants to input their own value to determine what the remainder of seats are. So they need cin to input their own custom value.
28th Sep 2021, 2:07 PM
Darkhost
Darkhost - avatar