anonymous
  • anonymous
WHO LIKES CHICKEN NUGGETS? help with writing a c++ program that outputs diff combinations of chicken nugget packs...
Computer Science
  • Stacey Warren - Expert brainly.com
Hey! We 've verified this expert answer for you, click below to unlock the details :)
SOLVED
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
katieb
  • katieb
I got my questions answered at brainly.com in under 10 minutes. Go to brainly.com now for free help!
anonymous
  • anonymous
the problem is the nuggets come in packs of 6 9 and 20 and i have to make a program that outputs the different pack combinations that the user can buy for an order. for example,
anonymous
  • anonymous
have you written any code for it?
anonymous
  • anonymous
if the user wanted 54 nuggets, they could have nine packs of six or five packs of nine.

Looking for something else?

Not the answer you are looking for? Search for more explanations.

More answers

anonymous
  • anonymous
*six packs of nine.
bahrom7893
  • bahrom7893
Ohhh i see
anonymous
  • anonymous
and yeah i didnt write code yet. i am still stuck on making a plan...
bahrom7893
  • bahrom7893
this is like finding the factors...
bahrom7893
  • bahrom7893
pulling up old codes for ideas...
anonymous
  • anonymous
this is pset2 from 6.00 and i have done it.
anonymous
  • anonymous
do i have to do something with the %.
anonymous
  • anonymous
no, first try to write a simple code or read the problem again
anonymous
  • anonymous
ummm. i am so stuck. do i just write out all the combinations myself ?
anonymous
  • anonymous
oh and there is a cap of 100.
anonymous
  • anonymous
i am not able to tell you clearly about it since you have not written any code.
bahrom7893
  • bahrom7893
ok let's start with basics: #include using namespace std; int main() { int amt; cout << "How many nuggets would you like to purchase?" << endl; cin >> amt; ...... hmm now
bahrom7893
  • bahrom7893
oh btw the user has to buy something that's a multiple of these. I mean what if he buys less than 6, or what if he buys 7, or 8, etc.
anonymous
  • anonymous
then it cannot be bought
bahrom7893
  • bahrom7893
So i guess we could add the following: do { cout << "Please choose a different number: " cin >> ant; } while (a%6!=0 || a%9!=0 || a%20!=0 );
anonymous
  • anonymous
#include #include using namespace std; void main() { int p6, p9, p20, order; cout<<"How many nuggets would you like to order?"; cin>>order; p20=order/20; cout<
bahrom7893
  • bahrom7893
lol that's like... *facepalm*
anonymous
  • anonymous
you guys are using c++, but i wrote it in python
anonymous
  • anonymous
this is why i need help.
bahrom7893
  • bahrom7893
jask, give me the algorithm, i'll try to translate it.
anonymous
  • anonymous
ok i'll give you the most basic version of this program
anonymous
  • anonymous
here """To find the sizes of McNuggets packages""" from math import * number = input("Enter the number of McNuggets you want to buy :") a=b=c=1 available = True while available == True: a1=number/a + 1 b1=number/b + 1 c1=number/c + 1 for a in range(0,a1): for b in range(0,b1): for c in range(0,c1): if number == 6*a + 9*b + 20*c : print "you need",a,"number of",6,"packs" print "you need",b,"number of",9,"packs" print "you need",c,"number of",20,"packs" print "of McNuggets" print "---------------------------" available=False print "Thank you for Buying and Have a nice day!!!" break
anonymous
  • anonymous
this for the first time i wrote it, a long time ago
anonymous
  • anonymous
it may not be that much elegant but it works, not for every input
anonymous
  • anonymous
okay so why are we dividing by the variable plus 1?
bahrom7893
  • bahrom7893
oh boy, i hoped it would work for all inputs, i mean come on, i can write out like 50 if else statements too for all possible inputs..
anonymous
  • anonymous
that ^^
bahrom7893
  • bahrom7893
there's no way in heck im doin that lol.. let me think
bahrom7893
  • bahrom7893
okay i see...
anonymous
  • anonymous
at least 6 9 and 20 multiples can be done with, for example, an if (order%6==0) p6=order/6; cout<
bahrom7893
  • bahrom7893
writing the code in a compiler.. not sure if the right idea.. just yet
anonymous
  • anonymous
okay @bahrom7893 this solution is only for this specific problem, i also have a more general solution
anonymous
  • anonymous
I wish i could've helped you with the code, but still i found this http://en.wikipedia.org/wiki/Coin_problem#McNugget_numbers hope that helps!
bahrom7893
  • bahrom7893
is that federer?
anonymous
  • anonymous
aw thankss.
bahrom7893
  • bahrom7893
mehh my method didnt work
anonymous
  • anonymous
in fact this program can be generalized too, just take input three packet sizes from user and replace them with 6, 9, 20 and there you have it.
anonymous
  • anonymous
so ask the user to guess first?
anonymous
  • anonymous
the packet sizes as well as the number of mcnuggets they want.
anonymous
  • anonymous
@bahrom7893 Yep, Roger Federer :D
anonymous
  • anonymous
This problem (albeit in python) is on one of the problem sets for course 6.00, problem set 2 to be precise. So you might want to ask there. I've done it, and could give you my code, but it's really basically the same as jaskaran's.
anonymous
  • anonymous
the reason you divide by the variable is because, for example, if you have a box of nuggets with 20 pieces, you know that the maximum number of boxes you could have (and thus the maximum you need to test) is your target/20. As for the +1, it's because the python range function gives you numbers until one behind the number you input, e.g.: range (0,5) 0, 1, 2, 3, 4 C++ may or may not be similar.
anonymous
  • anonymous
does python solve for a b and c in that equation num==2*a + 9*b + 20*c ? cause i dont think c++ does .
anonymous
  • anonymous
okay i am trying to understand jaskarans program...if the input was 6, then how would it print b and c as 0 if they were initialized as 1 ?
anonymous
  • anonymous
I think the reason he put in the line a=b=c=1 is just to initialize them as numbers. But actually I don't think it really matters, since either way you're simply looking at a, b and c values iterated between 0 and number/(size of nugget box). I'll paste my code for it, as upon second look mine is a little different (I don't use a while loop for example) and a bit simpler, and also mine has annotations that might make it more easy to understand. Anyway, here's mine: http://pastebin.com/dpJuFujR Actually I disagree with jaskarans' use of the while loop because, upon a cursory glance, it seems to be irrelevant: the value starts as true, the for statements run, and then the value is false. The program would run just as well without any while statement. As for what you asked, no, python doesn't actually solve (algebraically) the equation as you said. I'm sure you can write a program that solves algebraic equations, but the much more simple answer when dealing with a program language is to use what a computer is good at: trying out a bunch of stuff at blazing speed and testing if it's the right answer.
anonymous
  • anonymous
As a matter of fact, looking back at my program now, the S=0 M=0 L=0 statements I made at the beginning are also irrelevant. S, M, and L values are chosen by the for function, so even if I had not mentioned them at all in the beginning it still wouldn't matter.
anonymous
  • anonymous
i guess python and c++ work differently because i tried translating yours and it is giving me a neverending loop. i am not sure c++ is capable of checking the range by itself.. idk. thanks though !
anonymous
  • anonymous
This is naturally a recursive problem, and since it's a Sunday evening and I'm bored, I wrote this little hack that solves your problem: http://ideone.com/2iYBp
anonymous
  • anonymous
@pre-algebra It works! But not for all inputs. Also please could you explain this part http://ideone.com/01WcK Thanks!
anonymous
  • anonymous
jesssica - there shouldn't be any possibility of an infinite loop occurring with only for statements; they have a strict beginning and end. Or at least, Python is that way and I would assume C++ is as well. Are you sure you're not using a while statement or other loop-generating code?
anonymous
  • anonymous
thanks everyone, i ended up using mod and an else of subtracting from the initial and remainders.

Looking for something else?

Not the answer you are looking for? Search for more explanations.