问题标题: 酷町堂:4970 喵尔基里 递归写法

0
0
已解决
乔俊驰
乔俊驰
资深守护
资深守护

千算万算都是0

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
using namespace std;
int a[25][2],n,i=2;
int f(int n){
    if(i==n){
        return a[n][0];
    }
    a[i][0]=(a[i-1][0]*9+a[i-1][1])%100007;
    a[i][1]=(a[i-1][0]+a[i-1][1]*9)%100007;
    i++;
    return f(n);
}
int main()
{   
    cin>>n;
    a[1][0]=8,a[1][1]=1;
    cout<<f(n);
    return 0;
}

 


0
已采纳
张帆
张帆
中级天翼
中级天翼
int f(int i,int j)
{
    if(jyh[i][j]>0) return jyh[i][j];
    if(i==1&&j==0) return 8;
    if(i==1&&j==1) return 1;
    if(j==0){
        jyh[i][j]=(f(i-1,0)*9+f(i-1,1))%100007;
        return jyh[i][j];
    } else {
        jyh[i][j]=(f(i-1,1)*9+f(i-1,0))%100007;
        return jyh[i][j];
    }
}

结果是

sum+=f(n-i,0);
sum%=100007;

 

我要回答