大一时的一道C语言练习题,可作为递归和尾递归转迭代的范例.HDU 2013 http://acm.hdu.edu.cn/showproblem.php?pid=2013 题意:猴子摘了sum个桃子,从第1天开始,每天吃掉剩余桃子的一半多一个,第n天时只剩1个桃子,求sum值. 分析:设第 i 天在开吃之前所剩的桃子数为sum(i),第 i 天要吃掉的桃子数为f(i), 则问题可表示为:已知sum(n)=1 和如下两个关系式: f(i) = sum(i)/2 + 1 (1) sum(i+1) =…
Y sequence 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5297 Description Yellowstar likes integers so much that he listed all positive integers in ascending order,but he hates those numbers which can be written as a^b (a, b are positive integers,2…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4089 题意: 有n个人在排队激活游戏,Tomato排在第m个. 每次队列中的第一个人去激活游戏,有可能发生以下四种情况: (1)激活失败,继续留在队首,等待下一次激活. (2)连接失败,退到队尾. (3)激活成功,离开队列. (4)服务器瘫痪. 发生的概率分别为p1,p2,p3,p4. 问你服务器瘫痪时,Tomato的位置<=k的概率. 题解: 表示状态: dp[i][j] = probabilit…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2013 题目大意:已知最后一天桃子只有一个,告诉你猴崽子第一天吃掉总桃子数的一半多一个,第二天吃掉剩下总数的一半多一个,给你剩下一个桃子事件是在第 n 天发生的,求桃子总数 解题思路: 很水,想一下就出来了 方法一:for 倒着推 方法二:简单基本递归入门 代码: 方法一: #include<iostream> #include<cmath> #include<iomanip>…
蟠桃记 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 34245    Accepted Submission(s): 25794 Problem Description 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都认为这猴子太闹腾了.事实上你们是有所不知:悟空是在研究一个数学问题! 什么问题?他研究的问题是蟠桃一共同拥有…
Problem Description 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!什么问题?他研究的问题是蟠桃一共有多少个!不过,到最后,他还是没能解决这个难题,呵呵^-^当时的情况是这样的:第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子.聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?   Input 输…
Yellowstar likes integers so much that he listed all positive integers in ascending order,but he hates those numbers which can be written as a^b (a, b are positive integers,2<=b<=r),so he removed them all.Yellowstar calls the sequence that formed by…
目录 一.具体题目 二.视频讲解 三.思路分析(逆向思维) 四.代码+结果 代码: 结果: 五.彩蛋 一.具体题目 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个  第二天 早上又将剩下的桃子吃掉一半 ,又多吃了一个 . 以后每天早上都吃了前一天剩下的一半零一个. 到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少个桃. 二.视频讲解 点击这里去B站观看 三.思路分析(逆向思维) 第10天时的桃子数:1 第10天桃子总数 1个 第9天桃子总数:4 根据[以后每天早上都吃…
水题 AC代码: #include <iostream> using namespace std; int main() { int i,m,n; while(cin>>n) { m=1; for(i=n-1;i>=1;i--) m=(m+1)*2; cout<<m<<endl; } return 0; }…
题意:给出笛卡尔坐标系上 n 个点,n不大于100,求出这些点中能围出的最小面积. 可以肯定的是三个点围成的面积是最小的,然后就暴力枚举,计算任意三点围成的面积.刚开始是求出三边的长,然后求面积,运算步骤多,超时鸟~~,后来看了别人的代码,计算步骤挺少啊,不过我不会推这个式子. #include<stdio.h> #include<string.h> #include<math.h> struct node{ double x,y; }; node point[]; ;…