acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 这答案太长了-长度为一千的数组居然放不下

    原理很简单 就是把高精度加的代码复制过来,改成了一个高精度加的函数 然后就用循环进行计算 没有用递归,用递归大概率会超时吧

    userId_undefined

    侯

    倔强青铜
    195阅读
    0回复
    2点赞
  • 题解

    userId_undefined

    嘉陵江的晚风.

    倔强青铜
    81阅读
    1回复
    0点赞
  • 骗30分

    #include <bits/stdc++.h> using namespace std; long long fb(int n){ if(n <=1) return 1; return fb(n-1) +fb(n-2); } int main(){ } 以上为骗分,大概能得30分左右 下面为正解 #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> using namespace std; int n,len=1,f[5003][5003];//f[k][i]--第k阶台阶所对应的走法数 void hp(int k)//高精度加法,k来存阶数 { int i; for(i=1;i<=len;i++) f[k][i]=f[k-1][i]+f[k-2][i];//套用公式 for(i=1;i<=len;i++) //进位 if(f[k][i]>=10) { f[k][i+1]+=f[k][i]/10; f[k][i]=f[k][i]%10; if(f[k][len+1])len++; } } int main() { int i; scanf("%d",&n); f[1][1]=1; f[2][1]=2; //初始化 for(i=3;i<=n;i++) //从3开始避免越界 hp(i); for(i=len;i>=1;i--) //逆序输出 printf("%d",f[n][i]); return 0; }

    userId_undefined

    锤叔

    倔强青铜
    77阅读
    0回复
    0点赞
  • 答案很长!!数组需要开大

    userId_undefined

    S

    荣耀黄金
    31阅读
    0回复
    2点赞
  • 还是手搓结构体舒服

    userId_undefined

    复仇者_帅童

    尊贵铂金
    37阅读
    0回复
    1点赞
  • tijie<AC>

    tijie<AC>

    userId_undefined

    一只村民

    倔强青铜
    5阅读
    0回复
    1点赞
  • 题解

    userId_undefined

    枫岚

    倔强青铜
    13阅读
    0回复
    0点赞
首页