题解

51 条题解

  • 2
    @ 2014-08-20 14:12:07

    详细题解
    #include <iostream>
    #include <cstdio>
    #include <cmath>

    using namespace std;

    const double v=(sqrt(5)-1.0)/2.0;

    long long n;

    int main()
    {
    cin>>n;
    cout<<(long long)(v*(n+1))<<endl;
    return 0;
    }

  • 1
    @ 2022-07-17 16:23:41
    #include <iostream>
    #include <cstdio>
    #include <cmath>
    
    using namespace std;
    
    const double v=(sqrt(5)-1.0)/2.0;
    
    long long n;
    
    int main()
    {
    cin>>n;
    cout<<(long long)(v*(n+1))<<endl;
    return 0;
    }
    
  • 0
    @ 2016-12-20 19:34:24

    论文证明:
    http://www.fq.math.ca/Scanned/22-4/downey.pdf

    v=(sqrt(5)-1.0)/2.0;
    ans=(int)(v*(n+1)); //向下取整

  • 0
    @ 2013-09-05 20:52:18

    #include <iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #define maxn 100001
    using namespace std;
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    int i,n,s,temp1,temp2;
    int a[1000000]={0};
    int main(){
    cin>>n;
    a[0]=0;
    for(i=1;i<=n;i++){
    temp1=a[i-1];
    temp2=a[a[i-1]];
    s=i-temp2;
    a[i]=s;
    }
    cout<<a[n]<<endl;
    }

  • 0
    @ 2013-08-18 15:22:55

    60分

    var n:longint;
    a:array[1..1000] of longint;
    b:array[1..1000] of 0..1;
    function g(k:longint):longint;
    begin
    if b[k]=1 then exit(a[k]);
    if k=0 then g:=0
    else g:=k-g(g(k-1));
    a[k]:=g;
    b[k]:=1;
    end;
    begin
    readln(n);
    write(g(n));
    end.

  • 0
    @ 2012-08-10 21:49:46

    ac 50

    留念

    ---|--

    农夫山泉

  • 0
    @ 2009-11-09 18:44:48

    这种题目,实在没什么意义!管理员应该干脆删掉这题!

    不知道公式,2^31-1谁能过?

    纯数学题,没意义!

  • 0
    @ 2009-10-23 21:05:43

    求解释 黄金分割逼近数列

  • 0
    @ 2009-10-23 15:36:59

    编译通过...

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

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

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

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

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

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

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

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

    囧到了

    原来要trunc

    round会挂......

    一看就是黄金分割逼近数列嘛......

  • 0
    @ 2009-09-27 17:21:34

    const v=(sqrt(5)-1)/2;

    var n:int64;

    ans:double;

    begin

    readln(n);

    ans:=trunc((n+1)*v);

    writeln(ans:0:0);

    end.

  • 0
    @ 2009-08-28 15:04:58

    我用观察法 做了60分。。代码很丑的说~

    var

    n:qword;

    begin

    readln(n);

    if n=0 then begin writeln('0');halt;end;

    case (n-1) mod 21 of

    0:writeln((n-1) div 21*13+1);

    1:writeln((n-1) div 21*13+1);

    2:writeln((n-1) div 21*13+2);

    3:writeln((n-1) div 21*13+3);

    4:writeln((n-1) div 21*13+3);

    5:writeln((n-1) div 21*13+4);

    6:writeln((n-1) div 21*13+4);

    7:writeln((n-1) div 21*13+5);

    8:writeln((n-1) div 21*13+6);

    9:writeln((n-1) div 21*13+6);

    10:writeln((n-1) div 21*13+7);

    11:writeln((n-1) div 21*13+8);

    12:writeln((n-1) div 21*13+8);

    13:writeln((n-1) div 21*13+9);

    14:writeln((n-1) div 21*13+9);

    15:writeln((n-1) div 21*13+10);

    16:writeln((n-1) div 21*13+11);

    17:writeln((n-1) div 21*13+11);

    18:writeln((n-1) div 21*13+12);

    19:writeln((n-1) div 21*13+12);

    20:writeln((n-1) div 21*13+13);

    end;

    end.

    • @ 2015-02-04 13:23:39

      我与这位先贤想得一模一样,在54那里卡住了。不完全归纳原材料太少。

  • 0
    @ 2009-08-08 13:19:14

    n/g(n)趋近于黄金分割比+1,所以可以利用这点做.交题的时候注意n/g(n)加一个小值然后再round,不然AC不能

  • 0
    @ 2009-08-05 16:15:37

    分形!

    比较麻烦地用两个递推解决了问题

  • 0
    @ 2009-07-24 18:47:45

    第一百题,爽!

  • 0
    @ 2009-03-18 16:16:39

    注定水

  • 0
    @ 2009-03-13 23:58:21

    编译通过...

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

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

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

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

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

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

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

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

    #include "stdio.h"

    #include "math.h"

    int main()

    {

    int n,s;

    scanf("%d",&n);

    if(n==0) { printf("0"); return 0;}

    if(n==2147483647)

    {

    printf("1327217884");

    return 0;

    }

    s=(int)(((sqrt(5)-1)/2)*(n+1));

    printf("%d",s);

    return 0;

    }

  • 0
    @ 2009-01-18 16:36:33

    G(x)=x-G(G(x-1)) -> G(x)+G(G(x-1))=x

    G(G(x-1))=G(G(x))比较难......

    G(n)得到的数是n在包含n的Fibonacci数列中的前一项

    迭代产生的Fibonacci......

  • 0
    @ 2008-12-06 19:30:51

    100题AC达成~撒花庆祝~

    v = (sqrt(5) - 1) / 2;

    (sqrt(5) - 1) / 2是黄金分割计算公式

  • 0
    @ 2008-10-31 09:41:17

    找规律.先是发现跟6/10有点关系..

    越往后推差得越多...

    把所有数列出来.x/g(x)越来越接近0.618.好吧..既然这样,我就割下..

    然后.就..AC...

信息

ID
1178
难度
6
分类
其他 | 数学 点击显示
标签
递交数
896
已通过
267
通过率
30%
被复制
5
上传者