Skip to content

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;
}