海岛Blog

海是无垠的,岛在海中是独立的,有一片自己的天空

HDU2042 不容易系列之二【递推】

不容易系列之二

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 33645    Accepted Submission(s): 26898


Problem Description
你活的不容易,我活的不容易,他活的也不容易。不过,如果你看了下面的故事,就会知道,有位老汉比你还不容易。

重庆市郊黄泥板村的徐老汉(大号徐东海,简称XDH)这两年辛辛苦苦养了不少羊,到了今年夏天,由于众所周知的高温干旱,实在没办法解决牲畜的饮水问题,就决定把这些羊都赶到集市去卖。从黄泥板村到交易地点要经过N个收费站,按说这收费站和徐老汉没什么关系,但是事实却令徐老汉欲哭无泪:

(镜头回放)

近景:老汉,一群羊
远景:公路,收费站

......

收费员(彬彬有礼+职业微笑):“老同志,请交过路费!”

徐老汉(愕然,反应迟钝状):“锅,锅,锅,锅-炉-费?我家不烧锅炉呀?”

收费员(职业微笑依然):“老同志,我说的是过-路-费,就是你的羊要过这个路口必须交费,understand?”

徐老汉(近镜头10秒,嘴巴张开):“我-我-我知道汽车过路要收费,这羊也要收费呀?”

收费员(居高临下+不解状):“老同志,你怎么就不明白呢,那么我问你,汽车几个轮子?”

徐老汉(稍放松):“这个我知道,今天在家里我孙子还问我这个问题,4个!”

收费员(生气,站起):“嘿!老头,你还骂人不带脏字,既然知道汽车四个轮子,难道就不知道这羊有几条腿吗?!”

徐老汉(尴尬,依然不解状):“也,也,也是4个呀,这有关系吗?”

收费员(生气,站起):“怎么没关系!我们头说了,只要是4条腿的都要收费!”

......

(画外音)

由于徐老汉没钱,收费员就将他的羊拿走一半,看到老汉泪水涟涟,犹豫了一下,又还给老汉一只。巧合的是,后面每过一个收费站,都是拿走当时羊的一半,然后退还一只,等到老汉到达市场,就只剩下3只羊了。

你,当代有良知的青年,能帮忙算一下老汉最初有多少只羊吗?
 

Input
输入数据第一行是一个整数N,下面由N行组成,每行包含一个整数a(0<a<=30),表示收费站的数量。
 

Output
对于每个测试实例,请输出最初的羊的数量,每个测试实例的输出占一行。
 

Sample Input
212
 

Sample Output
46
 

Author
lcy
 

Source

问题链接HDU2042 不容易系列之二

问题简述:(略)

问题分析

  当前羊数减去一只并且乘以二,就是过当前收费站前羊的数量。

  依据题意:

  f1=3

  f2=(f1-1)*2

  ......

  fn=(fn-1 - 1)*2

  程序计算则可以采用递推计算,也可以采用递归计算。

程序说明:(略)

题记:(略)

参考链接:(略)


AC的C++语言程序如下:

/* HDU2042 不容易系列之二 */

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    int n, a, ans;

    scanf("%d", &n);
    while(n--) {
        scanf("%d", &a);

        ans = 3;
        for(int i=1; i<=a; i++)
            ans = (ans - 1) * 2;

        printf("%d\n", ans);
    }

    return 0;
}






阅读更多
所属专栏: ACM题解
想对作者说点什么? 我来说一句

HDU 不容易系列之二 2042

2010年11月27日 382B 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭