This should work – just linearly scale the red and green values. Assuming your max red/green/blue value is 255, and n is in range 0 .. 100
R = (255 * n) / 100
G = (255 * (100 - n)) / 100
B = 0
(Amended for integer maths, tip of the hat to Ferrucio)
Another way to do would be to use a HSV colour model, and cycle the hue from 0 degrees (red) to 120 degrees (green) with whatever saturation and value suited you. This should give a more pleasing gradient.
Here’s a demonstration of each technique – top gradient uses RGB, bottom uses HSV:
