zoukankan      html  css  js  c++  java
  • 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 A-跳台阶

    题目描述

      小明在坐景驰科技研发的无人车到达了目的地。
      景驰科技(JingChi.ai)是一家由人工智能技术驱动、以无人驾驶技术为核心的智能出行公司。它将打造面向中国市场的全无人驾驶。
      从无人车下来以后,小明看到了一个长长的楼梯。
      有一个n级台阶的楼梯,小明一次可以向上跳1步,两步,甚至是n步,请问小明跳到n级台阶有多少种跳法?

    输入描述:

    第一行输入一个整数t,代表有t组样例:( T<=30) 接下来的t行,都用一个整数n,表示楼梯有n级台阶( 1<=n<=30)

    输出描述:

    输出跳到第n级台阶有多少种跳法
    示例1

    输入

    1
    1

    输出

    1
    解题思路:这是一道规律题:每一步从1~n中选择i步跳上台阶,使得刚好跳到第n层。其实就是求1~n中选择几个数(可以重复)与顺序有关相加等于n即可。
    再讲得通俗些就是现在n为3,你可以先跳1步,再跳2步到第3层,也可以先跳2步,再跳1步到第3层;可以跳3步直接到第3层,也可以分3次跳1步到第3层,按照这样的规律来找即可找出答案。
    下面举4个栗子:(等号左边的数进行排列得到组合个数)
    当n=1时,只有一种排列组合:1=1
    当n=2时,有如下排列组合:
    1+1=2--->1种
    2=2 --->1种
    一共2种。
    当n=3时,有如下排列组合:
    1+1+1=3--->1种
    1+2=3 --->2种
    3=3 --->1种
    一共4种。
    当n=4时,有如下排列组合:
    1+1+1+1=4--->1种
    1+1+2=4 --->3种
    2+2=4 --->1种
    1+3=4 --->2种
    4=4  --->1种
    一共8种。
    由前几项 1 2 3 4 5 ... n
    1 2 4 8 16... 2^(n-1)
    可知规律就是a[i]=2*a[i-1].水题。。。
    AC代码:
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 long long a[35]={0};
     4 int main()
     5 {
     6     a[1]=1;
     7     for(int i=2;i<35;++i)
     8         a[i]=a[i-1]*2;
     9     int t,n;
    10     cin>>t;
    11     while(t--){
    12         cin>>n;
    13         cout<<a[n]<<endl;
    14     }
    15     return 0;
    16 }
     
  • 相关阅读:
    Linq 中的Select事例
    C#关于事件的几个好例子
    C#运用实例.读取csv里面的词条,对每一个词条抓取百度百科相关资料,然后存取到数据库
    cookie 和 session 基本使用 以及 封装
    javascript 兼容各个浏览器的事件
    jquery选择器从认识到使用初级篇
    作业八—Alpha阶段项目总结
    第十四次
    第十三次
    十二次
  • 原文地址:https://www.cnblogs.com/acgoto/p/8638712.html
Copyright © 2011-2022 走看看