Boa noite, tudo em paz ???
Seguinte, podemos representar essa promoção matematicamente da seguinte forma (veja que o problema diz "compre x balas e ganhe x% de desconto"):

Logo a quantia a ser paga pelas balas será

, mas o problema pede para descobrirmos como comprar mais balas gastando menos, logo temos um problema de máximo, como temos uma função de segundo grau com coeficiente líder negativo (o valor que multiplica o x de maior grau), logo o vértice da parábola descrita pela função achada representa o máximo da função, logo:

Logo, a quantidade que tem o maior desconto é de 50 balas. Agora, repare que Daniel poderia ter comprado 55 balas pelo mesmo preço que pagou pelas 45, veja:

Agora vejamos com

:

Então a resposta desejada é Daniel, pois ele poderia ter comprado 55 balas (10 balas a mais do que realmente comprou) pelo mesmo preço.
[ ]'s
Renato.
Iniciando a minha "caminhada" pela matemática agora... Tenho muito o quê aprender...