14273: 【原4273】青蛙跳荷叶
题目
题目描述
author: 程序设计思想与方法助教组Wu/Li 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/4273
问题描述
- 在一条横轴上
等距离的
生长着一排
荷叶,共n
个。荷叶坐标为(1,0)、(2,0)、(3,0)、……、(n,0)
。 - 一只青蛙在坐标原点
(0,0)
处。青蛙一次可以跳1个荷叶,也可以跳2个荷叶。 - 求青蛙跳到第n个荷叶上,共有多少种方法?(注:次序不同算不同的方法,如先跳1个荷叶再跳2个荷叶,和先跳2个荷叶再跳1个荷叶为两种不同的方法)
输入输出描述
输入
- 输入代表
荷叶个数
(在问题描述中记作n,程序中请自定变量名)。
输出
- 输出一个整数,表示共有多少种跳法。
- 如果输入错误,输出提示信息
error
。
数据范围说明
- 本题中,荷叶个数为1到90,其他个数均输出
error
。 测试集输入数据均在int范围内。
程序运行示例
示例1
Sample Input 1
200
Sample Output 1
error
示例2
Sample Input 2
4
Sample Output 2
5
示例3
Sample Input 3
-1
Sample Output 3
error
注意
- 不要显示多余的提示信息,避免输出判定错误。
- 注意判断输入信息是否符合要求。
victrid's solution
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if (n < 1 || n > 90)
{
cout << "error";
return 0;
}
long long step[] = {1, 1};
for (int i = 2; i <= n; ++i)
step[i % 2] += step[(i + 1) % 2];
cout << step[n % 2];
return 0;
}