日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

鸭子的故事

發布時間:2024/3/13 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 鸭子的故事 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.實驗目的及內容
(一)目的
1.掌握遞歸程序設計的方法。明確遞歸的概念,通過對問題的分析,找出遞歸關系以及遞歸出口以對問題進行遞歸結構設計;
2.掌握遞歸程序轉換為非遞歸程序的方法。
(二)內容
用遞歸方法設計下列各題,并給出每道題目的遞歸出口(遞歸結束的條件)和遞歸表達式。同時考慮題目可否設計為非遞歸方法,如果可以,設計出非遞歸的算法。
1.一個人趕著鴨子去每個村莊賣,每經過一個村子賣去所趕鴨子的一半又一只。這樣他經過了七個村子后還剩兩只鴨子,問他出發時共趕多少只鴨子?經過每個村子賣出多少只鴨子?
2.角谷定理。輸入一個自然數,若為偶數,則把它除以2,若為奇數,則把它乘以3加1。經過如此有限次運算后,總可以得到自然數值1。求經過多少次可得到自然數1。
如:輸入22,
輸出 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
STEP=16
二.結果





三.源代碼

#include<iostream> using namespace std;//非遞歸程序 int fun(int v,int sum); //遞歸程序 int Recurtion(int j,int summary); //角色定理 int FR(int input,int village);//非遞歸 int play(int input,int STEP);//遞歸int main() {//第一部分:非遞歸調用int i; //經過的村莊數int sum=2;//利用循環計算鴨子的總數,倒著計算鴨子的數目cout<<"非遞歸方法"<<endl;for(i=7;i>0;i--){sum=fun(i,sum);}sum=(sum+1)*2;cout<<"鴨子的總數為:"<<sum<<endl<<endl;//第二部分:遞歸調用cout<<"遞歸調用"<<endl;int summary=2;int j=7;Recurtion(j,summary);//第三部分:角色定理int village=1;//village為村莊,初始化為1int input;//input為輸入的鴨子數cout<<"請輸入鴨子的個數:";cin>>input;cout<<endl<<endl;cout<<"非遞歸"<<endl;FR(input,village);//非遞歸cout<<endl<<endl;cout<<"遞歸"<<endl;cout<<input<<" ";play(input,village);//遞歸return 0; }//非遞歸調用 int fun(int v,int sum) {if(v==7){cout<<"經過第"<<v<<"個村莊時剩余鴨子的總數:"<<sum<<endl;return sum;}else{sum=(sum+1)*2;//前一次鴨子的總數cout<<"經過第"<<v<<"個村莊時剩余鴨子的總數:"<<sum<<endl;return sum;} }//遞歸調用 int Recurtion(int j,int summary){summary=(summary+1)*2;cout<<"經過第"<<j<<"個村莊時的鴨子數為:"<<summary<<endl;j=j-1;if(j>0)Recurtion(j,summary);return 0; }//角色定理(非遞歸) int FR(int input,int village) {cout<<input<<" ";for(village;input!=1;village++){//輸入的鴨子數為偶數數if(input%2==0){input=input/2;cout<<input<<" ";}//輸入的鴨子數為奇數時else{input=input*3+1;cout<<input<<" ";}}cout<<endl;cout<<"STEP="<<village<<endl;return 0; }//遞歸 int play(int input,int STEP) {//當輸入鴨子數位為1時,退出遞歸 if(input==1){cout<<endl;cout<<"STEP="<<STEP<<endl; //輸出次數return 1;}//輸入鴨子的個數位偶數時else if(input%2==0){ input=input/2;cout<<input<<" ";STEP=STEP+1;play(input,STEP);}//輸入鴨子的個數位奇數時else{input=input*3+1;cout<<input<<" ";STEP=STEP+1;play(input,STEP);}return 0; }

總結

以上是生活随笔為你收集整理的鸭子的故事的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。