题解 P1028 【数的计算】

· · 题解

发现了一个应该是最好理解的代码

只要找到了f(n)=f(n/2)+f(n-2)这个规律就不难了

如果用递归会TLE

// P1028
    #include<iostream>
    #include<cstdio>
    using namespace std;
    int main() 
    {
        int f[1003],n1;
        f[1]=1;
        f[0]=1;
        for(int n=2;n<=998;n++)
            f[n]=f[n/2]+f[n-2];
        scanf("%d",&n1);
        printf("%d",f[n1]);
        return 0;
}