函数递归简单题-hdoj-2044 2018-一只小蜜蜂 母牛的故事
生活随笔
收集整理的這篇文章主要介紹了
函数递归简单题-hdoj-2044 2018-一只小蜜蜂 母牛的故事
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目:一只小蜜蜂
遞歸做法:
#include<cstdio> #include<iostream> #include<stdlib.h> #include<stack> #include<string> using namespace std; int cnt=0;//count int a,b; //int flag=0; int tran[3]={1,2};//坐標移動 void done(int x) {int begin=0,bet=0;begin=x;if(begin>b)return ;//越界if(begin==b){//cout<<"1"<<endl;cnt++;return ;}//到達終點else{for(int i=0;i<2;i++){bet=begin+tran[i];//移動位置done(bet);//cout<<"2"<<endl;}}return ; } int main() {int n;int i,j;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d%d",&a,&b);done(a);printf("%d\n",cnt);cnt=0;flag=0;}return 0; }一題遞歸類型的題目,比較簡單。我犯了兩個粗心的錯誤,一個是終點判斷使用了a,還有一個是main函數(shù)里面的輸入格式寫錯了...也感謝興桔的講解。
貼上興桔ppt的一部分,和函數(shù)遞歸的模板和深度優(yōu)先搜索有關系。
這題是規(guī)律題,用平常的遞歸會T,規(guī)律能看出符合斐波那契數(shù)列,所以這里給出它的做法。
#include<stdio.h> #include<string.h> using namespace std; int main() { long long int f[55]; f[1]=1; f[2]=2; for(int i=3;i<55;i++) { f[i]=f[i-1]+f[i-2]; } int t; scanf("%d",&t); while(t--) { int n,m; scanf("%d%d",&n,&m); printf("%lld\n",f[m-n]); } }參考博客:杭電2044一只小蜜蜂
博主的公告也很有意思:“屌絲分為兩種,一種是沒有夢想,渾噩一生的屌絲,另一種是懷揣著夢想,奮斗一生的屌絲。”
題目:母牛的故事
代碼:
解釋一下遞歸的語句:
int done(int x) {int c;if(x<=3) c=x;else c=done(x-1)+done(x-3);return c; }從第n年開始往回找到第一年,前3年牛的數(shù)目是按+1的規(guī)律來遞增的,當年數(shù)大于3的時候,母牛的數(shù)目等于去年的母牛數(shù)目+今年生產(chǎn)的母牛數(shù),今年生產(chǎn)的母牛數(shù)由題意(小牛過三年能生育)等于三年前的總牛數(shù),過了三年以后當時的牛都能生。
轉載于:https://www.cnblogs.com/qq952693358/p/5296364.html
總結
以上是生活随笔為你收集整理的函数递归简单题-hdoj-2044 2018-一只小蜜蜂 母牛的故事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java核心技术点之集合框架
- 下一篇: 关于ios app发布的中间证书的要求-