OP may not be actually using "FizzBuzz" as he said a FizzBuzz-type problem :)
Edit: For example, iterate through this string every time you hit an 's' print fizz etc...
for i in range(0,n):
if i % 3 == 0:
print 'fizz'
elif i % 5 == 0:
print 'buzz'
elif (i % 3 == 0) and (i % 5 == 0):
print 'fizzbuzz'
else
print i
It's not so much arithmetic that's the problem but reasoning about overlapping boolean conditions.I wonder if people are getting such bad results on this because it's always the first question they ask and the candidate isn't comfortable yet.
I think the problem is the old adage about not being able to to see the forest for the trees.
They break it down to the simple components and write those fairly easily but the forget about big picture of all 3 conditions working together.