zoukankan      html  css  js  c++  java
  • BNU34058——干了这桶冰红茶!——————【递推】

    干了这桶冰红茶!

    Time Limit: 1000ms
    Memory Limit: 65536KB
    64-bit integer IO format: %lld      Java class name: Main
    Type: 
    None
     
     

    BNUCIST的HWQ大神特别钟爱冰红茶这种神棍的饮料,有一天打Dota暴虐他寝室的WL后,决定大喝一顿庆祝一下。他决定用一种神棍的方式来喝冰红茶,那就是每口只喝1升,或者2升,或者3升(PS:HWQ大神真的能喝这么多= =)。爱思考的HWQ突然想知道,对于一桶整数升的冰红茶,他可以有多少种方案喝光,但似乎他不能马上想出解决的办法,纠结的他不知道答案他就喝不下去了。聪明的你快帮帮他吧。

     

    Input

        输入一个整数T,代表数据组数。

        对于每一组数据,输入一个整数N,1<=N<=30,表示这桶冰红茶有N升。

     

    Output

    对于每个N,输出一个整数,代表方案数。

     

    Sample Input

    1
    3
    

    Sample Output

    4

    Hint

    对于样例,3升的冰红茶,他可以(1)每次喝1升,连喝3口;(2)第一口喝1升,第二口喝2升;(3)第一口喝2升,第二口喝1升;(4)一口就喝掉3升。所以共有4种方案。

     

    Source

     
     
    解题思路:通过前面的递推出后边的。对于任意n可分为{{1,n-1},{2,n-2},{3,n-3}},所以sum[i]=sum[i-1]+sum[i-2]+sum[i-3];
     
    #include<bits/stdc++.h>
    using namespace std;
    int sum[50];
    int main(){
        int T;
        scanf("%d",&T);
        sum[0]=1;sum[1]=1;sum[2]=2;
        for(int i=3;i<32;i++){
            sum[i]=sum[i-1]+sum[i-2]+sum[i-3];
        }
        while(T--){
    
            int n;
            scanf("%d",&n);
            printf("%d
    ",sum[n]);
        }
        return 0;
    }
    

      

  • 相关阅读:
    [Python 多线程] 详解daemon属性值None,False,True的区别 (五)
    Python 多线程 线程安全、daemon简介 (四)
    Python 多线程 start()和run()方法的区别(三)
    jstack的使用方法
    java中的fork-join框架
    RabbitMQ:消息发送确认 与 消息接收确认(ACK)
    vue项目搭建
    Node.js安装及环境配置之Windows篇
    Storm里面fieldsGrouping和Field的概念详解
    Java8 如何正确使用 Optional
  • 原文地址:https://www.cnblogs.com/chengsheng/p/4409758.html
Copyright © 2011-2022 走看看