递推
return___0
这个作者很懒,什么都没留下…
展开
-
递归--汉诺塔
1.总体思想根据要求,转移之后的叠放顺序仍为从上至下由小到大,故需将A中最底下的圆盘(即最大的圆盘,称为N)借助C移动至B。而移动N之前,必须先将位于N之上的n-1块圆盘移至C上,即需先完成n-1块圆盘的转移,故核心思想为递归思想。2.关键步骤当n=1时,直接将圆盘从A上移至B上即可。当n>1时,先将N之上的n-1块圆盘移至C,再将N移至B。再将N-1之上的n-2块圆盘移至A,再将原创 2017-09-26 16:10:44 · 294 阅读 · 0 评论 -
杭电2041超级楼梯
题目:爬楼梯一次只能爬1级或者2级,问从第1级台阶到第m级台阶有多少种爬法?思路1:排列法求解。数太大,爆long long,故错误。思路2:采用递归思想因为只有两种跨越(爬1级或者爬2级),故到达第m级楼梯的爬法=到达第m-1级的爬法(到达第m-1级后选择爬1级的跨越方法,到达第m级)+到达m-2级的爬法(到达第m-2级后选择爬2级的跨越方法,到达第m级)故本题是一道斐波那契原创 2018-01-14 20:07:12 · 193 阅读 · 0 评论 -
杭电2018母牛的故事
思考过程:年份 头数 1 1(初始成年母牛) 2 2(成年母牛1头,未成年母牛1头) 3 3(成年母牛1头,未成年母牛2头) 4 4(成年母牛1头,未成年母牛3头) 5 6(成年母牛2头,未成年母牛4头) 6 9(成年母牛3头,未成年母牛6头) 7 13(成年母牛4头,未成年母牛9头) 8 21(成年母牛6头,未成年母牛13头) 9 28(成年原创 2018-01-15 14:16:53 · 336 阅读 · 0 评论 -
杭电2045
玄机尽在此图中,哈哈哈#include#includeusing namespace std;int main(){ long long sum[55]; int n,m; sum[0]=0; for(int i=1;i<=55;i++) { sum[i]=pow(2,i)-sum[i-1]; cout<<sum[i]<<endl; } while(cin>>n)原创 2018-01-16 12:27:19 · 205 阅读 · 0 评论 -
杭电2046
斐波那契#includeusing namespace std;int main(){ long long sum[52]; int n; sum[0]=1,sum[1]=1; for(int i=2;i<=52;i++) { sum[i]=sum[i-1]+sum[i-2]; } while(cin>>n) { cout<<sum[n]<<endl;原创 2018-01-16 13:01:28 · 213 阅读 · 0 评论 -
杭电2047
思路1:找规律推通式但是发现当输入为36或37时,求得的结果与“答案”不一致(答案通过别人的AC代码得到)强行修正后AC#include#includeusing namespace std;int main(){ long long sum[52],o[52]; int n; sum[1]=3,sum[2]=8; o[0]=o[1]=0,o原创 2018-01-16 16:46:28 · 516 阅读 · 2 评论 -
杭电2048--大坑提示
错排公式,推导过程见百度有一个大坑是输出内容有%号时必须用printf("%%"),不能用printf("%")#include#includeusing namespace std;long long int factorial(int n){ long long m=1; for(int i=2;i<=n;i++) { m*=i; } return m;}int m原创 2018-01-18 10:00:27 · 739 阅读 · 0 评论 -
杭电2049
错排+排列,从N对夫妇里选出M对,用printf输出的时候注意用printf("%lld")而不是printf("%d")#includeusing namespace std;long long int factorial(int n){ long long int m=1; for(int i=1;i<=n;i++) { m*=i; } return m;}int ma原创 2018-01-18 11:30:41 · 337 阅读 · 0 评论 -
杭电2050
分割平面的个数=交点个数+顶点个数+1令f(n-1)为前n-1条折线分割的平面数,当添加第n条折线时。因为每一条边与前n-1条折线的两条边都相交,故增加的交点数为2*2*(n-1),顶点增加1,故f(n)=f(n-1)+4(n-1)+1f(n-1)=f(n-2)+4(n-2)+1....f(2)=f(1)+4*1+1f(1)=2f(n)-2=4((n-1)+(n-2)+...+1)+(n-1)=4转载 2018-01-19 12:55:25 · 214 阅读 · 0 评论