Okay, it took me a while to get who what and why but accept my apologies - your formula is correct... and so is mine. They're just two different ways of looking at the same thing.
Your formula is: 1ATK for every 1 point of STR, EXCEPT for multiplies of 10 where it's +2, +4, +6, +8, etc.
My formula is: 1 ATK for every 1 point of STR, AND add one-time bonus for [STR/10]^2.
And they're the same if you calculate it:
At 10, your formula is 9(From STR) +2(From one-time +2 bonus).
At 10, my formula is 10(From base STR) +1(From the [10/10]^2 bonus)
At 30, your formula is 27(From STR except the multiplies of 10) +2(From 10 bonus) +4(From 20 bonus) +6(From 30 bonus), which is 27 + 12, which is 39.
At 30, my formula is 30(From base STR) +9(From the [30/10]^2 bonus)
At 50, your formula will be 45 +2 +4 +6 +8 +10, which is 45 + 30 for a total of 75.
At 50 my formula is 50 + 25, which is also 75.
And so on. Basically your method uses sequencing, while mine uses exponentiation.
Yay math!