题解

19 条题解

  • 0
    @ 2022-02-27 16:38:43

    from math import *
    from io import *
    from functools import *
    from fractions import *

    n=int(input())
    f=Fraction(n,1)
    i = 2
    while i<=n:
    f=f+Fraction(n,i)
    i=i+1

    i=f.numerator//f.denominator
    f=f-i
    if (f.numerator==0):
    print(i)
    exit()

    length=0
    if(i==0):
    length=0
    else:
    if(i==1):
    length=1
    else:
    length=ceil(log10(i))

    spaces=""
    dashes=""
    j=1
    while j<=length:
    spaces=spaces+" "
    j=j+1

    lms=max(f.numerator,f.denominator)
    if lms==1:
    length=1
    else:
    length=ceil(log10(lms))

    j=1
    while j<=length:
    dashes=dashes+"-"
    j=j+1

    print(spaces+str(f.numerator))
    if(i!=0):
    print(str(i)+dashes)
    else:
    print(dashes)

    print(spaces+str(f.denominator))

  • 0
    @ 2016-06-07 21:30:19

    要不用用**Python**?
    毕竟还是Py用起来方便

    
    from math import *
    from io import *
    from functools import *
    from fractions import *
    
    n=int(raw_input())
    f=Fraction(n,1)
    i = 2
    while i<=n:
        f=f+Fraction(n,i)
        i=i+1
    
    i=f.numerator//f.denominator
    f=f-i
    if (f.numerator==0):
        print(i)
        exit()
    
    length=0
    if(i==0):
        length=0
    else:
        if(i==1):
            length=1
        else:
            length=ceil(log10(i))
    
    spaces=""
    dashes=""
    j=1
    while j<=length:
        spaces=spaces+" "
        j=j+1
    
    lms=max(f.numerator,f.denominator)
    if lms==1:
        length=1
    else:
        length=ceil(log10(lms))
    
    j=1
    while j<=length:
        dashes=dashes+"-"
        j=j+1
    
    print(spaces+str(f.numerator))
    if(i!=0):
        print(str(i)+dashes)
    else:
        print(dashes)
    
    print(spaces+str(f.denominator))
    
  • 0
    @ 2010-03-08 18:54:21

    直接通分了。

    速度很慢也不想改了

  • 0
    @ 2009-10-22 22:49:03

    改了将近5小时....此题终于被本沙茶攻克!

    先是写高精写了1.5小时,后来速度慢,改了2小时,剩下的时间竟然废在了辗转相除上 .......

    ---|---|---|---|---|---|---|---|---|---|---|---|-

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 56ms

    ├ 测试数据 07:答案正确... 134ms

    ├ 测试数据 08:答案正确... 150ms

    ├ 测试数据 09:答案正确... 212ms

    ├ 测试数据 10:答案正确... 244ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:796ms

    Flag    Accepted

    题号   P1266

    类型(?)   其它

    通过   

    • @ 2016-01-22 23:40:14

      如果你wrong answer,请往你的程序中输入'1000',然后和下面的输出(正确答案)比较一下:

      3356701426563542640660218521647598449806199168350689318114344666153093952482183924913424909706863374880871158947303378784895571741755217080299859342116423043561373779380455743697287870587757510632243417634520715355224822402369223371075024180370715431544743536846273193934050759876288530188346611274588224628887171141416342953198963710311506432932524911458829755806461415066312923222629939716570351818750456991425269012785079175317
      7485----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      7128865274665093053166384155714272920668358861885893040452001991154324087581111499476444151913871586911717817019575256512980264067621009251465871004305131072686268143200196609974862745937188343705015434452523739745298963145674982128236956232823794011068809262317708861979540791247754558049326475737829923352751796735248042463638051137034331214781746850878453485678021888075373249921995672056932029099390891687487672697950931603520

    • @ 2016-01-22 23:41:41

      楼主请无视上面……

  • 0
    @ 2009-10-22 15:02:03

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    不用任何优化= =

    唉,水题啊。。。。

    只要分母开始用乘的形式表示,然后对每个数求他和分子的gcd就可以了

  • 0
    @ 2009-10-12 09:03:14

    优化之前 Puppy

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 72ms

    ├ 测试数据 04:答案正确... 322ms

    ├ 测试数据 05:运行超时...

    ├ 测试数据 06:运行超时...

    ├ 测试数据 07:运行超时...

    ├ 测试数据 08:运行超时...

    ├ 测试数据 09:运行超时...

    ├ 测试数据 10:运行超时...

    ---|---|---|---|---|---|---|---|-

    Unaccepted 有效得分:40 有效耗时:394ms

    优化之后 sunny

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 9ms

    ├ 测试数据 07:答案正确... 103ms

    ├ 测试数据 08:答案正确... 103ms

    ├ 测试数据 09:答案正确... 150ms

    ├ 测试数据 10:答案正确... 197ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:562ms

  • 0
    @ 2009-10-10 20:00:08

    高精度太麻烦了!193行的程序,其中133行的高精!!!

    procedure print(a:arr);

    operator

  • 0
    @ 2009-08-07 12:47:40

    n(1+1/2+.....+1/n)

  • 0
    @ 2009-03-01 07:59:43

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 56ms

    ├ 测试数据 08:答案正确... 9ms

    ├ 测试数据 09:答案正确... 25ms

    ├ 测试数据 10:答案正确... 25ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:115ms

    公式+高精度加减乘除

    程序:

    begin

    read(n);

    if n=2 then begin write(3);exit;end;

    cheng;

    yue;

    jian;

    print;

    end.

  • 0
    @ 2008-11-23 11:09:04

    过的艰难啊...

  • 0
    @ 2008-08-29 21:28:29

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 9ms

    ├ 测试数据 09:答案正确... 56ms

    ├ 测试数据 10:答案正确... 41ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:106ms

    数学公式+高精度(加法、减法、乘法、除法)

    还有注意约分可能的数都是在1..n范围内的素数,放心的去做吧,绝对不会TLE

    另外,除了这以外没有什么难点,就是水题了:-)

    第12个通过,庆祝一下!!!

  • 0
    @ 2008-08-24 22:12:28

    解方程

    居然得到优美的结果

    f(n)=n*(1/1+1/2+1/3+...+1/n)

    不不管怎么弄还是要除法...

    不过我弄的是高精度除普通数的

    数还是挺大的

    100

    514363298098147293252820792685553768551

    518---|---|---|---|---|---|---|---|---|---|---|---|---|

    697203752297124771645338089353123035568

    1000的太长了格式被打乱了……

  • 0
    @ 2007-11-04 22:43:05

    MS我不会带小数的高精啊~真是太不好啦

  • 0
    @ 2007-07-26 20:07:19

    AC了 啊啊啊啊啊啊啊啊啊啊啊

  • 0
    @ 2006-11-02 15:41:19

    Finally ac了,死都不优化常数了

    ps:楼下的楼大牛非常强 强到飞起来了

  • 0
    @ 2006-10-28 16:27:33

    公式确实容易f(x)=f(x-1)+n/x

    不过。。。。数据有点大。。。。

  • 0
    @ 2006-10-25 21:02:16

    就是n/1+n/2+n/3+……n/n.然后用高精度。

    好麻烦啊,我写了160多行!

  • 0
    @ 2006-10-20 21:01:04

    公式好推,努力编程ing

  • 0
    @ 2006-10-20 17:21:04

    推公式……ms没什么其他好办法了。怎么推导就仁者见仁智者见智了

  • 1

信息

ID
1266
难度
7
分类
概率论 | 动态规划 | 高精度 点击显示
标签
递交数
149
已通过
32
通过率
21%
被复制
3
上传者