52 条题解
-
0席一鸣 LV 8 @ 2014-08-06 14:44:25
#include<iostream>
using namespace std;
main()
{
int k,x,i,sum=0,y,a[101],b[101],d;
bool bo=0,c=0;
cin>>x>>y;
cout<<x/y;
if(x%y==0)
return 0;
cout<<".";
k=x%y;
while(!bo)
{
sum++;
k*=10;
a[sum]=k/y;
k%=y;
b[sum]=k;
for(i=1;i<sum;i++)
if(a[sum]==a[i]&&b[sum]==b[i])
{
c=1;
bo=1;
d=i;
}
if(sum==100||k==0)
bo=1;
}
sum-=c;
for(i=1;i<=sum;i++)
{
if(c&&d==i)
cout<<"("<<a[i];
else
cout<<a[i];
}
if(c)
cout<<")";
} -
02014-02-24 16:44:36@
#include<iostream>
using namespace std;
int main()
{
int x,y,n,c,d,i,j,l,xunhuan,a[101]={0},b[101]={0};
cin>>x>>y;
cout<<(x/y);
n=x%y;
if(n==0) return 0;
else
{
cout<<".";
l=0;
j=0;
c=0;
while(j!=1)
{
l++;
n*=10;
a[l]=n/y;
n=n%y;
b[l]=n;
for(i=1;i<l;i++)
if(a[l]==a[i]&&b[l]==b[i])
{
c=1;
d=i;
j=1;
}
if(l==100||n==0) j=1;
}l=l-c;
for(i=1;i<=l;i++)
{
if(d==i&&c==1) {cout<<"(";cout<<a[i];}
else cout<<a[i];
}
if(c==1) cout<<")";
}
return 0;
} -
02013-08-27 14:43:34@
用usaco做过的不加修改。。
错了两次才过
-
02009-11-06 08:00:04@
。。。 NOIP2009初赛题目额
-
02009-10-21 20:46:42@
#include
using namespace std;
int main(void)
{
int i=1,a,b,x[101],p=0,j,k,s[101],u;
cin>>a>>b;
cout -
02009-09-25 23:37:12@
2009/9/25/23/36 发
-
02009-09-03 16:55:15@
精确到100位。。。。。。没看见
-
02009-08-16 15:36:09@
不要四舍五入!
-
02009-08-04 10:30:32@
只算到一百为?交了N遍最后改个until a=0 or i=100 AC啦 我使用以前写的程序交的嘿嘿
-
02009-08-01 11:23:41@
水题(可我提交了三次才过)。
前两次(70分)部分代码:
Procedure Main;
Begin
i := 0; k := 0;
Repeat
x := x * 10;
……
Inc(i);
Until i = 100;
End;
第三次部分代码:
Procedure Main;
Begin
i := 1; k := 0;
Repeat
Inc(i);
x := x * 10;
……
Until i = 100;
End;细节上犯了个小错误(少循环一次)。
-
02009-07-17 12:00:08@
几个问题!!!!!!!
cass6(1):如果小数点最后两位,就是99,100位为22那是否应写成
*.\**|\**|\*....\**|*(2)
但实际结果是它并不是循环小数,怎么办?
(2):如果实际上小数点后的第90~97,与98~105位一样,也就是这个循环小数
从90位开始循环,但题中只要求算到100位,105位就算不到了,这种情
况是写*.\**|\**|\*...\**|(!@#$)还是*.***|\**|*...*|
就是写循环小数还是直接精确到100位不循环?
注:代表任意一数字 .代表省略和小数点。 -
02009-06-30 20:38:16@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms这么简单的题我交了两次才过,丢人。
-
02009-04-06 17:50:08@
这题也太弱了,好歹搞个分数嘛
纪念我提交350次,180 AC
-
02009-04-05 01:29:28@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include "stdio.h"
int main()
{
int x,y,n,c,d,i,j,l,xunhuan,a[101]={0},b[101]={0};
scanf("%d%d",&x,&y);
printf("%d",x/y);
n=x%y;
if(n==0)
return 0;
else{
printf(".");
l=0;
j=0;
c=0;
do
{
l++;
n*=10;
a[l]=n/y;
n=n%y;
b[l]=n;
for(i=1;i -
02009-03-27 17:43:02@
var a,b:array[1..1000] of longint;
c,d,s,n,m,i,j,l:longint;
begin
readln(n,m);
write(n div m);
s:=n mod m;
if s0 then
begin
write('.');
repeat
l:=l+1;
s:=s*10;
a[l]:=s div m;
s:=s mod m;
b[l]:=s;
for i:=1 to l-1 do if (a[i]=a[l]) and (b[l]=b[i]) then
begin
c:=1;
d:=i;
j:=1;
end;
if (l=100) or (s=0) then j:=1;
until j=1;
l:=l-c;
for i:=1 to l do
begin
if (d=i) and (c=1) then write('(',a[i]) else write(a[i]);
end;
if c=1 then write(')');
end;
readln;
end.
数据……
我原来的打111 100 我程序最后显示1.11(0)
它居然也过了…… -
02009-01-28 20:50:50@
终于找到水题了!
-
02008-11-10 09:34:02@
AC
记余数判重. -
02008-11-07 22:54:30@
一次AC......
注意:
1、先输出x div y,然后 x:=x mod y;
2、判断 x mod y,如果为0,直接halt,否则输出'.',然后开始除小数……
3、循环条件:商相同 and 余数相同,不仅仅是余数而已……
4、输出的时候,先输出非循环部分,只有循环部分才用括号,比如:1/6=0.1(6)于是……
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-10-20 20:49:10@
庆祝220题...
-
02008-09-30 15:37:02@
传说中的Longint