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

      

  • 相关阅读:
    css3动画之1--animation小例子
    炎炎夏日,走入美妙的前端设计案例
    模拟腾讯、携程、百度音乐 移动端图片切换第一版
    仿QQ空间长图效果简易版--母亲节感恩
    001-搭建框架
    javascript事件绑定1-模拟jquery可爱的东西
    图片尺寸
    mvc3结合spring.net-依赖注入
    *创建索引初步
    Lucene的分词_中文分词器介绍
  • 原文地址:https://www.cnblogs.com/chengsheng/p/4409758.html
Copyright © 2020-2023  润新知