剑指offer面试题9——变态跳台阶

题目1389:变态跳台阶

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:2296

解决:1308

题目描述:

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

 

输入:

输入可能包含多个测试样例,对于每个测试案例,

输入包括一个整数n(1<=n<=50)。

 

输出:

对应每个测试案例,

输出该青蛙跳上一个n级的台阶总共有多少种跳法。

 

样例输入:
6
样例输出:
32
答疑:
这题采用的是f(n)=2^n-1  
在这里需要注意的用的数据类型,用Int是通不过的,需要用 long long int才行
刚刚看书的时候看到这样一张表
类型名称        字节数    取值范围
signed char       1        -128~+127
short int         2        -32768~+32767
int               4        -2147438648~+2147438647
long int          4        -2147438648~+2141438647
long long long int  8      -9223372036854775808~+9223372036854775807

#include<iostream>

using namespace std;

 

#define LINT long long

 

LINT fbi(LINT n)

{

    if(n==0)

        return 0;

    if(n==1)

        return 1;

    LINT v=n-1;

    LINT re=1;

    while(v--)

    {

        re*=2;

    }

    return re;

}

int main()

{

    LINT n;

    while(cin>>n)

        cout<<fbi(n)<<endl;

    return 0;

}

/**************************************************************

    Problem: 1389

    User: 弱水三千12138

    Language: C++

    Result: Accepted

    Time:10 ms

    Memory:1520 kb

****************************************************************/

  

你可能感兴趣的:(面试题)