3 条题解

  • 1
    @ 2023-7-5 17:46:23

    好嘛,本来以为是个简单递推,没想到是高精度。。。。

    更BT的是连__int128都装不下

    • 0
      @ 2024-4-3 22:57:22
      #include <bits/stdc++.h>
      using namespace std;
      int n;
      string a[1010];
      string plusg(string x,string y){
      	int a[1000]={0},b[1000]={0},c[1010]={0};
      	string gentle;
      	for (int i=0;i<(int)x.size();i++)a[i]=x[(int)x.size()-1-i]-'0';
      	for (int i=0;i<(int)y.size();i++)b[i]=y[(int)y.size()-1-i]-'0';
      	int len=max((int)x.size(),(int)y.size());
      	for (int i=0;i<len;i++){
      		c[i]+=a[i]+b[i];
      		if (c[i]>=10){
      			c[i+1]+=c[i]/10;
      			c[i]%=10;
      		}
      	}
      	while(len>0&&c[len]==0)len--;
      	for (int i=len;i>=0;i--)gentle+=c[i]+'0';
      	return gentle;
      }
      int main(){
      	std::cin>>n;
          a[1]="1";
          a[2]="2";
          for (int i=3;i<=n;i++)a[i]=plusg(plusg(a[i-1],a[i-1]),a[i-2]);
          cout<<a[n];
      	return 0;
      }
      
      • 0
        @ 2023-1-30 10:18:02

        Pell数列的规律:设a[1]=1,a[2]=2,a[n]=2a[n-1]+a [n-2] (n>2) 核心代码:

        a=[1,2]
        for i in range(2 to 1000):
            a.append(2*a[i-1]+a[i-2])#打表
        p=input()
        p=int(p)
        print(a[p-1])
        

        Loading:25/100……

        • 1

        信息

        ID
        1486
        时间
        1000ms
        内存
        256MiB
        难度
        6
        标签
        递交数
        56
        已通过
        16
        上传者