题解

52 条题解

  • 0
    @ 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<<")";
    }

  • 0
    @ 2014-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;
    }

  • 0
    @ 2013-08-27 14:43:34

    用usaco做过的不加修改。。

    错了两次才过

  • 0
    @ 2009-11-06 08:00:04

    。。。 NOIP2009初赛题目额

  • 0
    @ 2009-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

  • 0
    @ 2009-09-25 23:37:12

    2009/9/25/23/36 发

  • 0
    @ 2009-09-03 16:55:15

    精确到100位。。。。。。没看见

  • 0
    @ 2009-08-16 15:36:09

    不要四舍五入!

  • 0
    @ 2009-08-04 10:30:32

    只算到一百为?交了N遍最后改个until a=0 or i=100 AC啦 我使用以前写的程序交的嘿嘿

  • 0
    @ 2009-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;

    细节上犯了个小错误(少循环一次)。

  • 0
    @ 2009-07-17 12:00:08

    几个问题!!!!!!!

    cass6

    (1):如果小数点最后两位,就是99,100位为22那是否应写成

       *.\**|\**|\*....\**|*(2)

      但实际结果是它并不是循环小数,怎么办?

    (2):如果实际上小数点后的第90~97,与98~105位一样,也就是这个循环小数

       从90位开始循环,但题中只要求算到100位,105位就算不到了,这种情

       况是写*.\**|\**|\*...\**|(!@#$)还是*.***|\**|*...*|

      就是写循环小数还是直接精确到100位不循环?

    注:
    代表任意一数字 .代表省略和小数点。

  • 0
    @ 2009-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

    这么简单的题我交了两次才过,丢人。

  • 0
    @ 2009-04-06 17:50:08

    这题也太弱了,好歹搞个分数嘛

    纪念我提交350次,180 AC

  • 0
    @ 2009-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

  • 0
    @ 2009-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)

    它居然也过了……

  • 0
    @ 2009-01-28 20:50:50

    终于找到水题了!

  • 0
    @ 2008-11-10 09:34:02

    AC

    记余数判重.

  • 0
    @ 2008-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

  • 0
    @ 2008-10-20 20:49:10

    庆祝220题...

  • 0
    @ 2008-09-30 15:37:02

    传说中的Longint

信息

ID
1343
难度
6
分类
高精度 点击显示
标签
(无)
递交数
1033
已通过
248
通过率
24%
被复制
5
上传者