专题训练1028 - 递推和递归

 

 

 

 

今天勤快懒亿点。就直接发题解了,明天再发思路。也会再在这儿放个思路链接。

 

 

 题解:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n,a=1,b=0,c=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        a+=b;
        b=0;
        b+=c;
        c=0;
        c+=a;
    }
    cout<<a;
    return 0;
} 

 

 

 题解:

#include<bits/stdc++.h>
using
namespace std; int main() { long long a[10000],n; cin>>n; a[1]=1; a[2]=1;
for(int i=3;i<=n;i++) { a[i]=a[i-1]+a[i-2]; } cout<<a[n-1]; return 0; }

 

 

 题解:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n,a[1000];
    cin>>n;
    a[1]=2;for(int i=2;i<=n;i++)
    {
        a[i]=a[i-1]+i;
    }
    cout<<a[n];
    return 0;
} 

题解:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long a,b,c;
    cin>>a>>b;
    if(a<b) swap(a,b);
    c=a%b;
    while(c)
    {
        a=b;
        b=c;
        c=a%b;
    }
    if(b==1) cout<<"Yes";
    else cout<<"No";
    return 0;
} 

 

 

 题解:

#include<bits/stdc++.h>
using namespace std;
int m;
void h(int n,char a1,char b1,char c1)
{
    if(n==0) return;
    h(n-1,a1,c1,b1);
    printf("%c->%d->%c\n",a1,n,b1);
    h(n-1,c1,b1,a1);
}
int main()
{
    char a,b,c; 
    cin>>m>>a>>b>>c;
    h(m,a,b,c);
    return 0;
}

 

 

 题解:

#include<bits/stdc++.h>
using namespace std; 
int main()
{
    int n,f[1000];
    cin>>n;
    f[1]=0;
    f[2]=1;
    f[3]=1;
    for(int i=4;i<=n;i++)
    {
        f[i]=f[i-2]+f[i-2-1];
    }
    cout<<f[n];
    return 0;
}

 

 

 题解:

#include<bits/stdc++.h>
using namespace std; 
int main()
{
    int n=1,a;
    cin>>a;
    for(int i=1;i<a;i++)
    {
        n=(n+1)*2;
    } 
    cout<<n;
    return 0;
}

 

 

 题解:

#include<bits/stdc++.h>
using namespace std; 
int main()
{
    int n,f[1000];
    cin>>n;
    f[1]=1;
    f[2]=2;for(int i=3;i<=n;i++)
    {
        f[i]=f[i-1]+f[i-2];
    }
    cout<<f[n];
    return 0;
}

 

 题解:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long a,b,c;
    cin>>a>>b;
    if(a<b) swap(a,b);
    c=a%b;
    while(c)
    {
        a=b;
        b=c;
        c=a%b;
    }
    cout<<b; 
    return 0;
} 

 

 题解:

#include<bits/stdc++.h>
using namespace std; 
int main()
{
    long long x,y,z,a[1000]={0},b[1000]={0};
    cin>>x>>y>>z; 
    for(int i=0;i<x;i++) a[i]=1;
    for(int i=x;i<=z;i++)
    {
        a[i]=a[i-1]+b[i-2];
        b[i]=a[i-x]*y;
    }
    cout<<a[z];
    return 0; 
} 

💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤💤

啊,不说了10点了睡觉去了(~﹃~)~zZ

#include<bits/stdc++.h>using namespace std; int main(){int n,f[1000];cin>>n;f[1]=0;f[2]=1;f[3]=1;for(int i=4;i<=n;i++){f[i]=f[i-2]+f[i-2-1];}cout<<f[n];return 0;

}

 

 

 

 

 

ui有一句话 

posted @ 2022-01-19 22:04  王浩泽  阅读(53)  评论(0)    收藏  举报