[ CodeVS冲杯之路 ] P1842

       不充钱,你怎么AC?

       题目:http://codevs.cn/problem/1501/

       一开始看到题目有点懵逼,没有看懂题目的意思QuQ

       后面发现,原来就是个类似于斐波拉契数列的递推

       f[0]=5  f[1]=11

       f[i]=f[i-1]+f[i-2]+1  i∈(2,+oo)∩N

       一开始读入n时,先将n取相反数,然后如果n为负数,直接置为0

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<iostream>
 6 #include<algorithm>
 7 #define N 31
 8 using namespace std;
 9 
10 int n,f[N];
11 int main()
12 {
13     int i;
14     scanf("%d",&n);
15     n=-n;
16     if (n<0) n=0;
17     f[0]=5;
18     f[1]=11;
19     for (i=2;i<=n;i++) f[i]=f[i-1]+f[i-2]+1;
20     printf("%d
",f[n]);
21     return 0;
22 }
原文地址:https://www.cnblogs.com/hadilo/p/5859911.html