//采用递归的方案,类似于递归中的子集问题,超时
#include <iostream>
#include <string>
#include <stdio.h>
using
namespace
std;
void
jumpStep(
int
soFar,
int
n,
int
&iCount)
{
if
(soFar==n)
{
iCount++;
return
;
}
else
if
(soFar==n-1)
{
iCount++;
return
;
}
else
{
for
(
int
i=1;i<3;i++)
{
jumpStep(soFar+i,n,iCount);
}
}
}
int
main()
{
int
n;
int
p=0;
while
(cin>>n)
{
p=0;
jumpStep(0,n,p);
cout<<p<<endl;
}
return
0;
}
/**************************************************************
Problem: 1388
User: 无梦楼主lv
Language: C++
Result: Time Limit Exceed
****************************************************************/
//此题实际上是斐波那契数列的变形。进行函数化处理,问题的本质!
#include <iostream>
#include <string>
#include <stdio.h>
using
namespace
std;
long
long
jumpStep(
int
n)
{
long
long
a,b,c;
a=1;
b=2;
if
(n==1)
{
return
1;
}
else
if
(n==2)
{
return
2;
}
else
{
int
p=2;
while
(p<n)
{
c=a+b;
a=b;;
b=c;
p++;
}
return
c;
}
}
int
main()
{
int
m;
long
long
p;
while
(cin>>m)
{
p=jumpStep(m);
cout<<p<<endl;
}
return
0;
}
/**************************************************************
Problem: 1388
User: 无梦楼主lv
Language: C++
Result: Accepted
Time:10 ms
Memory:1520 kb
****************************************************************/