3 条题解

  • 1
    @ 2025-2-20 12:51:48

    #include <bits/stdc++.h> using namespace std; int fib(int n) { if(n<=2) return 1; return fib(n-1)+fib(n-2); } int main() { int n; cin>>n; cout<<fib(n); return 0; }

    • 1

      先搓一个高精度加减法(迫真)

      
      string sub(string str1,string str2)
      {
          string str;
          int tmp=str1.length()-str2.length();
          int cf=0;
          for(int i=str2.length()-1;i>=0;i--)
          {
              if(str1[tmp+i]<str2[i]+cf)
              {
                  str=char(str1[tmp+i]-str2[i]-cf+'0'+10)+str;
                  cf=1;
              }
              else
              {
                  str=char(str1[tmp+i]-str2[i]-cf+'0')+str;
                  cf=0;
              }
          }
          for(int i=tmp-1;i>=0;i--)
          {
              if(str1[i]-cf>='0')
              {
                  str=char(str1[i]-cf)+str;
                  cf=0;
              }
              else
              {
                  str=char(str1[i]-cf+10)+str;
                  cf=1;
              }
          }
          str.erase(0,str.find_first_not_of('0'));
          return str;
      }
      string add(string str1,string str2)
      {
          string str;
          int len1=str1.length();
          int len2=str2.length();
          if(len1<len2)
          {
              for(int i=1;i<=len2-len1;i++)
                 str1="0"+str1;
          }
          else
          {
              for(int i=1;i<=len1-len2;i++)
                 str2="0"+str2;
          }
          len1=str1.length();
          int cf=0;
          int temp;
          for(int i=len1-1;i>=0;i--)
          {
              temp=str1[i]-'0'+str2[i]-'0'+cf;
              cf=temp/10;
              temp%=10;
              str=char(temp+'0')+str;
          }
          if(cf!=0)  str=char(cf+'0')+str;
          return str;
      }
      

      然后搓一个递归,就是斐波那契数列的主干

      string fb(string a)
      {
      	if(a=="1") return "1";
      	if(a=="2") return "2";
      	else return add(fb(sub(a,"1")),fb(sub(a,"2")));
      }
      

      然后先关掉鲨臂的sync,再用主函数

      int main()
      {
      	string a;
      	fucksync();
      	cin>>a;
      	cout<<fb(sub(a,"1"))<<"\n";
      }
      
      • 0
        @ 2025-2-16 13:57:48

        #include<bits/stdc++.h>

        using namespace std;

        int digui(int a)

        {

        if(a1||a2)

        return 1;

        else

        return digui(a-1)+digui(a-2);

        }

        int main()

        {

        int m;

        cin>>m;

        cout<<digui(m);

        return 0;

        }

        • 1

        信息

        ID
        662
        时间
        1000ms
        内存
        256MiB
        难度
        1
        标签
        递交数
        26
        已通过
        24
        上传者