197 条题解
-
0hc199581 LV 8 @ 2009-07-23 16:22:08
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram p1116(input,output);
var i:longint;
f,f1,f2,f3,gen1,gen2,gen3,a,b,c,d,x:real;
procedure jh(var a,b:real);
var c:real;
begin
c:=a;
a:=b;
b:=c;
end;
begin
readln(a,b,c,d);
gen1:=-100;
gen2:=-99.99;
gen3:=-99.98;
f1:=a*gen1*gen1*gen1+b*gen1*gen1+c*gen1+d;
f2:=a*gen2*gen2*gen2+b*gen2*gen2+c*gen2+d;
f3:=a*gen3*gen3*gen3+b*gen3*gen3+c*gen3+d;
if abs(f1)>abs(f2) then begin jh(f1,f2); jh(gen1,gen2); end;
if abs(f2)>abs(f3) then begin jh(f2,f3); jh(gen2,gen3); end;
if abs(f1)>abs(f2) then begin jh(f1,f2); jh(gen1,gen2); end;
for i:=-9997 to 10000 do
begin
x:=i/100;
f:=a*x*x*x+b*x*x+c*x+d;
if abs(f)gen2 then jh(gen1,gen2);
writeln(gen1:0:2,' ',gen2:0:2,' ',gen3:0:2);
end.枚举竟可以骗到全部得分!!!!!!!!!!!!
哎……骗分也可以这么简单…… -
02009-07-20 10:26:39@
var
i,l:longint;
a,b,c,d,x,y,k:real;
s:array[0..6]of real;
begin
read(a,b,c,d);
fillchar(s,sizeof(s),0);
l:=0;
for i:=-100000 to 100000 do
begin
k:=i/1000;
x:=a*k*k*k+b*k*k+c*k+d;
k:=k+0.001;
y:=a*k*k*k+b*k*k+c*k+d;
if (x*y -
02009-07-15 13:53:23@
var
i,l:longint;
a,b,c,d,x,y,k:real;
s:array[0..6]of real;
begin
read(a,b,c,d);
fillchar(s,sizeof(s),0);
l:=0;
for i:=-100000 to 100000 do
begin
k:=i/1000;
x:=a*k*k*k+b*k*k+c*k+d;
k:=k+0.001;
y:=a*k*k*k+b*k*k+c*k+d;
if (x*y -
02009-07-04 09:59:11@
请问有什么问题
-
02009-07-03 12:51:45@
var
a,b,c,d,x:real;
i,t:integer;
function f(x:real):real;
begin
f:=((a*x+b)*x+c)*x+d;
end;
begin
read(a,b,c,d);
t:=0;
for i:=-10000 to 10000 do
begin
x:=i/100;
if (f(x)>-0.0001) and (f(x)3 then exit;
write(x:0:2,' ');
end;
end;
end. -
02009-06-30 20:06:21@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
童鞋们猪益了!!!
算出来写=,要看相差多少 -
02009-06-20 11:34:40@
总算AC了。。。
a,b,c,d开成了longint,只A了一半的点。。。 -
02009-06-13 21:46:44@
楼下的看不懂啊
怎么function js下面又来了个var -
02009-06-11 21:38:56@
program fangcheng;
var
a,b,c,d:real;t:integer;
function js(x:real):real;
begin
js:=a*x*x*x+b*sqr(x)+c*x+d;
end;
var
x:integer;
x1,x2,xx:real;
begin
readln(a,b,c,d);
t:=0;
for x:=-100 to 100 do
begin
x1:=x;
x2:=x+1;
if js(x1)=0 then
begin
write(x1:0:2,' ');
inc(t);
if t=3 then halt;
continue;
end;
if js(x1)*js(x2)>=0 then continue;
if js(x1)*js(x2)=0.01 do
if js(xx)*js(x1) -
02009-06-05 17:00:36@
小菜AC45题..庆祝一下~~
二分法才是王道!!!
//vijos p1116 一元三次方程的求解 二分法 2009.6.5
#include
#include
#include
#define e 0.001
float a,b,c,d;
using namespace std;
inline bool f(float& x)
{return a*x*x*x + b*x*x + c*x + d > 0;}
void g(float left , float right , bool& f1 , bool& f3)
{
float middle = (right - left)/2;
if(middle < e) {coutd;
float x1=-101, x2=-100;
bool f1, f2 = f(x2);
int i=-100;
while(++i -
02009-05-28 20:01:02@
var
x:integer;
a,b,c,d,x1,x2,xx:extended;
function f(x:extended):extended;
begin
f:=((a*x+b)*x+c)*x+d;
end;
begin
read(a,b,c,d);
for x:=-100 to 100 do
begin
x1:=x;x2:=x+1;
if f(x1)=0 then write(x1:0:2,' ')
else if f(x1)*f(x2)=0.005 do
begin
xx:=(x1+x2)/2;
if f(x1)*f(xx)
-
02009-04-30 22:02:05@
看罢各位牛人的讲解,感到极度郁闷,早知如此,何必分治?
---|---|---|---|---|---|---|---|---|---|---|
var a,b,c,d:real;
v:array[-10000..10000]of boolean;
function ff(x:real):real;
begin
ff:=a*x*x*x+b*x*x+c*x+d;
end;
procedure find(a,b:real);
var k:longint;f1,f2,f3:real;
begin
f1:=ff(a);
f2:=ff(b);
if (abs(f1) -
02009-04-29 22:33:07@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
---|---|---|---|---|---|---|---|-
的确呀 -
02009-04-24 23:12:28@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
吸取前人的经验果然效果显著!!!
orz -
02009-04-22 22:00:47@
program yyscfc;
var
a,b,c,d,p,q:real;
x:array[1..3]of real;
i:integer;
procedure yunsuan;
begin
repeat
begin
p:=p+0.001;
q:=p+0.001;
end;
until ((a*p*p*p+b*p*p+c*p+d)*(a*q*q*q+b*q*q+c*q+d))=0.5 then x[i]:=(int (p*100))/100+0.01 else x[i]:=(int (p*100))/100;
end;
begin
readln(a,b,c,d);
p:=-100.001;
for i:=1 to 3 do yunsuan;
writeln(x[1]:3:2,' ',x[2]:3:2,' ',x[3]:3:2);
end.
竟然要求四舍五入
郁闷 -
02009-03-24 18:19:56@
一个For循环就可以了
另外注意精度问题
遇到一台没法Debug的电脑……交了好多次……哭…… -
02009-03-14 22:49:32@
program dd;
var
a,b,c,d,x:real;
i:longint;
begin
read(a,b,c,d);
for i:=-10000 to 10000 do begin
x:=i/100;
if abs(a*x*x*x+b*x*x+c*x+d) -
02009-03-06 00:54:23@
直接穷举20000种可能,一个接一个试,11行结束战斗
穷举循环:
for(i=-100;i -
02009-02-26 18:12:40@
思路:1.读入a,b,c,d;2用数学方法列条件求解。
-
02009-02-16 22:25:51@
program yiyuansancifancheng;
var a,b,c,d,x,s:real;
i:integer;
function f(x:real):real;
begin
f:=a*x*x*x+b*x*x+c*x+d;
end;
begin
readln(a,b,c,d);
x:=-100;
for i:=1 to 3 do
begin
repeat
s:=f(x);
if abs(s)