📄 equation.pas
字号:
program equation(input,output);
const zero=1e-11; {精度}
var a,b,x,fa,fx:real;
m,n,p:integer;
function f(m,n,p,x:real):real;
begin
f:=exp(x*ln(m))+exp(x*ln(n))-exp(x*ln(p));
end;
begin {main}
assign(input,'equation.in');
assign(output,'equation.out');
reset(input);
rewrite(output);
readln(m,n,p,a,b);
close(input);
if f(m,n,p,a)*f(m,n,p,b)>0
then begin writeln('NO');close(output);halt end{这说明在[a,b]区间中无解。}
else
repeat
x:=(a+b)/2;
fa:=f(m,n,p,a);{求a的函数}
fx:=f(m,n,p,x);{求b的函数}
if fa*fx<0 then b:=x {在[a,x]内有解}
else a:=x; {在[x,b]内有解}
until (abs(b-a)<zero);
writeln((a+b)/2);
writeln(f(m,n,p,(a+b)/2));{输出解}
close(output)
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -