Cody

# Problem 834. Solve Quadratic : No * - or key functions permitted

Solution 465496

Submitted on 2 Jul 2014 by Clemens Giegerich
• Size: 14
• This is the leading solution.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
%% % Courtesy of Aurelien Queffurust filetext = fileread('quadratic.m'); assert(isempty(strfind(filetext, '*')),'sign * forbidden') assert(isempty(strfind(filetext, 'mtimes')),'mtimes forbidden') assert(isempty(strfind(filetext, 'cross')),'cross forbidden') assert(isempty(strfind(filetext, 'prod')),'prod forbidden') assert(isempty(strfind(filetext, 'cumprod'))) assert(isempty(strfind(filetext, 'times'))) assert(isempty(strfind(filetext, 'mldivide'))) assert(isempty(strfind(filetext, 'mrdivide'))) assert(isempty(strfind(filetext, '/')),'/ forbidden') assert(isempty(strfind(filetext, '\'))) assert(isempty(strfind(filetext, '-'))) assert(isempty(strfind(filetext, '^')),'^ forbidden') assert(isempty(strfind(filetext, 'dot'))) assert(isempty(strfind(filetext, '''')),'string forbidden') assert(isempty(strfind(filetext, 'num2str'))) assert(isempty(strfind(filetext, 'int2str'))) assert(isempty(strfind(filetext, 'dec2bin'))) assert(isempty(strfind(filetext, 'roots')))

2   Pass
%% a=1;b=1;c=1; rad=sqrt(b*b-4*a*c); xe(1)=(-b+rad)/(2*a); xe(2)=(-b-rad)/(2*a) xq = quadratic(a,b,c) assert(isequal(round(1e6*xq)/1e6,round(1e6*xe)/1e6) || isequal(round(1e6*xq(2:-1:1))/1e6,round(1e6*xe)/1e6))

xe = -0.5000 + 0.8660i -0.5000 - 0.8660i xq = 1 1 ans = 1 ans = 1

3   Pass
%% a=1;b=4;c=1; rad=sqrt(b*b-4*a*c); xe(1)=(-b+rad)/(2*a); xe(2)=(-b-rad)/(2*a) xq = quadratic(a,b,c) assert(isequal(round(1e6*xq)/1e6,round(1e6*xe)/1e6) || isequal(round(1e6*xq(2:-1:1))/1e6,round(1e6*xe)/1e6))

xe = -0.2679 -3.7321 xq = 1 1 ans = 1 ans = 1

4   Pass
%% a=1;b=4;c=1; a=a+rand rad=sqrt(b*b-4*a*c); xe(1)=(-b+rad)/(2*a); xe(2)=(-b-rad)/(2*a) xq = quadratic(a,b,c) assert(isequal(round(1e6*xq)/1e6,round(1e6*xe)/1e6) || isequal(round(1e6*xq(2:-1:1))/1e6,round(1e6*xe)/1e6))

a = 1.6163 xe = -0.2822 -2.1926 xq = 1 1 ans = 1 ans = 1