Yes! There's a much cleaner approach. Triloki, your brute-force enumeration actually got the right answer (13), but here's how to think through it faster.
The key constraint isn't just "spend at most $50." It's that Sally can't buy even ONE more flower after purchasing. Since daffodils are cheaper at $1.50, the constraint is: leftover money < $1.50.
So: 4r + 1.5d > 48.5, and 4r + 1.5d ≤ 50 (where r = roses, d = daffodils, both non-negative integers).
1. Multiply everything by 2 to kill the decimal: 8r + 3d > 97, and 8r + 3d ≤ 100.
2. So 8r + 3d can only equal 98, 99, or 100.
3. For each target value, figure out which r values work. Since r and d are non-negative integers, you need (target - 8r) to be divisible by 3 and non-negative.
Case A: 8r + 3d = 100 → need 100 - 8r ≡ 0 (mod 3) → 2r ≡ 1 (mod 3) → r ≡ 2 (mod 3)
Valid values: r = 2, 5, 8, 11 → 4 solutions
Case B: 8r + 3d = 99 → need r ≡ 0 (mod 3)
Valid values: r = 0, 3, 6, 9, 12 → 5 solutions
Case C: 8r + 3d = 98 → need r ≡ 1 (mod 3)
Valid values: r = 1, 4, 7, 10 → 4 solutions
Total: 4 + 5 + 4 = 13. Answer is (B).
The concept here is Diophantine equations — a specific Problem Solving skill the GMAT Focus loves to test with "how many combinations" money problems. Once you multiply to clear fractions and find your modular constraint, each case reduces to a simple counting exercise rather than listing every possibility.
The trap most people fall into is forgetting the "can't buy another flower" constraint applies to the cheapest item. If she had $1.49 left, she still can't buy a daffodil. Worth flagging that in your setup before you start crunching.