215 条题解
-
0hzx-hao LV 6 @ 2009-08-03 20:09:45
#include
using namespace std;
int main()
{
float P,Q;
cin>>P>>Q;
P=P/100;
Q=Q/100;
for(int i=1;;i++)
{
if((int(Q*i-0.000001)-int(P*i+0.000001))>=1)
{
//if((Q*i*0.01)>int(Q*i*0.01))
cout -
02009-07-30 17:02:59@
太阴了,而不是=
var a,b:longint;
min,max:double;begin
readln(min,max);
min:=min/100;
max:=max/100;
for a:=1 to maxlongint do
if int(a*min+0.000000000001)int(a*max-0.000000000001) then
begin
write(a);
halt;
end;
end.编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-07-28 16:01:55@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
总之一句话,别想复杂了。。。
(虽然我也觉得此题BT) -
02009-07-27 20:26:24@
program P1041;
var bo:boolean;p,q:extended;i,x:longint;
begin
read(p,q);
i:=0;bo:=false;
repeat
inc(i);
if trunc(i*q/100)=i*q/100 then x:=trunc(i*q/100)-1 else x:=trunc(i*q/100);
if x>i*p/100 then begin write(i);halt;end;
until bo;
end.
---|---|---|---|---|---|
貌似很简单。。只要注意题目里的那句不足和超过就可以了
应该不需要很高的精度的。 -
02009-07-26 10:47:25@
#include "stdio.h"
int main()
{
float p,q;
int i;
scanf("%f%f",&p,&q);
p=p/100;
q=q/100;
for(i=1;;i++)
if((int)(i*q-0.000001)-(int)(i*p+0.000001)>=1)
break;
printf("%d",i);
return 0;
} -
02009-07-24 16:31:01@
不是很明白什么是精度……
就知道自己傻傻的wa了4次
谁可以具体给我讲下
什么时候用精度考虑
怎么考虑大牛的+363059129
非常感谢
-
02009-07-22 16:52:22@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms精度问题啊!!!!!!!!!!!!!!!!!!!
我WA了3次!!!!!!!!!!!!!!!!!!!!!!
我可怜的通过率啊!!!!!!!!!!!!!!!!!!!!!!
program p1041(input,output);
var p,q:real;
i:longint;
begin
readln(p,q);
p:=p/100;
q:=q/100;
i:=1;
while trunc(i*p+0.0000000001)>=trunc(i*q-0.0000000001) do
i:=i+1;
writeln(i);
end. -
02009-07-21 21:30:09@
知道一个不需要精度的算法
var
a, b, t1, t2:real;
i: longint;
begin
readln(a,b);
for i:=1 to 10001 do begin
t1:=i*a/100;
t2:=i*b/100;
if (trunc(t2)-trunc(t1)>=1) and (t2>trunc(t2)) then begin
writeln(i);
exit;
end;
end;
end. -
02009-07-22 10:12:05@
-var
i,j:longint;
a,flag:longint;
m,n:double;
b,c,p,q:double;
begin
read(p,q);
a:=0;
flag:=0;
if (p -
02009-07-20 02:01:07@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar p,q:double;
i:longint;
begin
read(p,q);
i:=0;
repeat
inc(i);
until trunc(i*p/100+0.0001) -
02009-07-18 16:18:50@
program p1041;
var i,n1,n2:longint;
n,p,q:double;begin
readln(p,q);
for i:=1 to 1000000 do
begin
n:=i*p/100; n1:=trunc(n);
inc(n1);
n:=i*q/100; n2:=trunc(n);
if n2=n then dec(n2);
if (n10) then
begin
writeln(i);
exit;
end;
end;
end. -
02009-07-17 14:27:35@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms又是一道水题耶O(∩_∩)O哈哈~
program p1041;
var i,n1,n2:longint;
n,p,q:double;begin
readln(p,q);
for i:=1 to 1000000 do
begin
n:=i*p/100; n1:=trunc(n);
inc(n1);
n:=i*q/100; n2:=trunc(n);
if n2=n then dec(n2);
if (n10) then
begin
writeln(i);
exit;
end;
end;
end.但是为什么
Flag Accepted
题号 P1041
类型(?) 模拟
通过 4353人
提交 17184次
通过率 25%
难度 1通过率只有25%
害我以为这道题有什么很特别的阴人之处呢..
一次秒杀 +_+ -
02009-07-14 22:50:27@
精度问题....
-
02009-07-09 16:26:53@
program p1041;
const
maxn=1000000000;
var
p,q:real;
ans:integer;procedure try(a,b:real);
var
n,i:integer;
temp:real;
bool:boolean;
begin
i:=1;
bool:=false;
repeat
inc(i);
temp:=(q-p)*i;
if temp -
02009-07-08 19:21:52@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案错误...程序输出比正确答案长
├ 测试数据 05:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 06:运行时错误...| 错误号: 200 | 被零除
├ 测试数据 07:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 08:答案错误...程序输出比正确答案长
├ 测试数据 09:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 03:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 06:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms___|\__|\__|__哀怨的分割线___|\__|\__|\__|\__|_
const m=0.000000001;
var i:integer;
a,b:real;
begin
read(a,b);
a:=a/100+m;
b:=b/100-m;
i:=1;
while trunc(i*a)=trunc(i*b) do inc(i);
write(trunc(i ));
end.___|\__|\__|\__|\_更哀怨的分割线\__|\__|\__|\__|_
严重鄙视这该死的精度!!害我WA了两次!!
我无辜的通过率啊!! -
02009-07-07 21:32:57@
莫名其妙的AC了
注意精度 我开的1e-6不够 到1e-9就AC了 还有就是注意+m,-m的事情 条件的判断上有个+1 穷举选上的人比穷举全部的人要快
最后要说,楼下的,你超时太严重了!!! -
02009-07-04 10:08:01@
为什么?
为什么一年前AC的程序,
如今原封不动地交上去,
结果却是连续三天的Running........................................??? -
02009-06-24 16:13:23@
减0.00000001我知道为什么,但+0.000000001是为什么?
举个例子好吗? -
02009-06-24 15:31:42@
连分数,P1504弱化版
var a,b,d:array[1..20] of integer;
x,y,z:extended;
al,bl,dl,e,f,g,h,i,t:integer;
begin
readln(x,y);
e:=round(x*100);
f:=10000;
g:=round(y*100);
h:=10000;
i:=0;
while (i=0) or (a[i]=b[i]) do begin
inc(al);
if e=0 then a[al]:=maxint
else begin
t:=e;e:=f;f:=t;
a[al]:=e div f;
e:=e mod f;
end;
inc(bl);
if g=0 then b[bl]:=maxint
else begin
t:=g;g:=h;h:=t;
b[bl]:=g div h;
g:=g mod h;
end;
inc(i);
end;
if a[i] -
02009-06-12 08:57:58@
program p1041;
//=======================================
procedure work;
var q,p,a,b:real;
n:integer;
begin
readln(p,q);
q:=q/100;
p:=p/100;
n:=1;
repeat
a:=n/(p+0.0000000000001);
b:=n/(q-0.0000000000001);
inc(n);
until trunc(a)>=trunc(b)+1;
write(trunc(b)+1);
end;
//=====================================
begin
work;
end.