外国做视频在线观看网站,天眼查企业信息官网,建网站需要了解哪些网站建设知识,广告传媒公司简介范文ps#xff1a;全文中如果有任何错误您看到并能指出来的话(尤其是递归树)感激不尽XDDDD每个问题包含#xff1a;(1)题目描述(2)递归解决代码(3)非递归解决代码(4)递归模型(5)递归树(6)运行结果截图一、卖鸭子问题1.题目描述一个人赶着鸭子去每个村庄卖#xff0c;每经过一个村…ps全文中如果有任何错误您看到并能指出来的话(尤其是递归树)感激不尽XDDDD每个问题包含(1)题目描述(2)递归解决代码(3)非递归解决代码(4)递归模型(5)递归树(6)运行结果截图一、卖鸭子问题1.题目描述一个人赶着鸭子去每个村庄卖每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子问他出发时共赶多少只鸭子经过每个村子卖出多少只鸭子2.递归解决代码(解释见代码)/*Author:InnocenceIDE:dev COS:win10Time:2019/5/30Edition:1.0Description:【递归解决】已知剩下的鸭子和卖鸭子的规则求一开始的鸭子数及每个村庄卖的鸭子*/#includeusing namespace std;int sale(int left_duck,int flag){ // 倒推过程int sale_duck(left_duck1)*2-left_duck; // 卖出的鸭子数(剩下的鸭子数1)*2[即原本的鸭子数]-剩下的鸭子数int ducksale_duckleft_duck; // 原本的鸭子数剩下的卖出的flag-1; // 因为是倒推所以村落数递减if(flag0) // 递归出口。且不能等于0因为一开始就减一了如果等于0实际相当于只去了6个村子{return left_duck; // 返回此时鸭子数即最开始的鸭子数}else{cout3.非递归解决代码(解释见代码)/*Author:InnocenceIDE:dev COS:win10Time:2019/5/30Edition:1.0Description:【非递归解决】用for循环代替递归*/#includeusing namespace std;int sale(int left_duck){ // 倒推过程int duck(left_duck1)*2; // 原本的鸭子数剩下的卖出的return duck;}int main(){int duck0; // 原本的鸭子数int left_duck2; // 最后剩下的鸭子数int sale_duck0; // 卖掉的鸭子数for(int i1;i7;i){ducksale(left_duck); // 这个村庄此时的鸭子数sale_duckduck-left_duck; // 卖出的鸭子数原本的鸭子数-剩下的鸭子数left_duckduck; // 经过这个村庄后剩下的鸭子数等于此时的鸭子数cout4.递归模型【模板】递归函数(){ 1、递归的出口 2、递归调用 3、递归的本级处 }【此题的递归模型】递归函数:int sale(int left_duck,int flag) { 1.递归的出口flag0 2.递归调用、递归的本级处 ducksale(duck,flag); }5.递归树6.运行结果二、角谷定理1.题目描述输入一个自然数若为偶数则把它除以2若为奇数则把它乘以3加1。经过如此有限次运算后总可以得到自然数值1。求经过多少次可得到自然数1。如输入22输出 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 STEP162.递归解决代码(解释见代码)/*Author:InnocenceIDE:dev COS:win10Time:2019/5/30Edition:1.0Description:【递归解决】角谷定理的应用*/#includeusing namespace std;//角谷定理函数int Theorem(int num,int step){if(num1)return step; // 返回执行的步数if(num%20){numnum/2; // 是偶数就除以2cout num; //输入一个整数cout3.非递归解决代码(解释见代码)/*Author:InnocenceIDE:dev COS:win10Time:2019/5/30Edition:1.0Description:【非递归解决】实际就用一个while循环代替递归 角谷定理的应用*/#includeusing namespace std;int main(){int num;int step1;coutnum; //输入一个整数cout4.递归模型【模板】递归函数(){ 1、递归的出口 2、递归调用 3、递归的本级处 }【此题的递归模型】递归函数:int Theorem(int num,int step) { 1.递归的出口num1 2.递归调用、递归的本级处 numTheorem(num,step);}5.递归树6.运行结果