function poly_print(a)

first = true;
for n = 1:numel(a)
    if a(n)
        if first == false
            if a(n) > 0
                fprintf(' + ');
            else
                fprintf(' - ');
            end
        end
        if first && a(n) < 0
            fprintf('-');
        end
        first = false;
        if abs(a(n)) == 1
            if n == 1
                fprintf('1');
            elseif n == 2
                fprintf('x');
            else
                fprintf('x^%d',n-1);
            end
        else
            if n == 1
                fprintf('%g',abs(a(n)));
            elseif n == 2
                fprintf('%g x',abs(a(n)));
            else
                fprintf('%g x^%d',abs(a(n)),n-1);
            end
        end
    end
end
