当前位置: 首页 > news >正文

北京网站建设q479185700強计算机网络设计报告ensp

北京网站建设q479185700強,计算机网络设计报告ensp,网站的制作过程,wordpress谷歌加速插件目录 1.分析下面选择题 2.实现求第n个斐波那契数 3.编写一个函数实现n的k次方#xff0c;使用递归实现。 4.写一个递归函数DigitSum(n)#xff0c;输入一个非负整数#xff0c;返回组成它的数字之和 5.递归方式实现打印一个整数的每一位 6.实现求n的阶乘 1.分析下面选择…目录 1.分析下面选择题 2.实现求第n个斐波那契数 3.编写一个函数实现n的k次方使用递归实现。 4.写一个递归函数DigitSum(n)输入一个非负整数返回组成它的数字之和 5.递归方式实现打印一个整数的每一位 6.实现求n的阶乘 1.分析下面选择题 根据下面递归函数调用函数Fun(2)返回值是多少 (16) int Fun(int n)       { if(n5)   return 2;     else     return 2*Fun(n1);       } 解析:当n5的时候退出递归 先递推,再回归 n2的时候 一直递推 到2*fun(5) 的时候结束递推(一共三次递推),然后回归(也三次) 4个2相乘 16 2.实现求第n个斐波那契数 我们要先理解什么叫斐波那契数,简单解释一下吧 1 , 1 , 2 , 3 , 5.... 那就是前两个数相加等于第三个数,例如112 123 .... 递归实现 假如用递归实现,要确定限制条件,那就是第一个数和第二数的时候都是返回1 Fib11Fib21 因此我们设定条件n1和n2时返回1限制条件 而当n2是返回Fib (n-1Fibn-2实现递归趋近于限制条件 递归函数的缺点: 其实递归程序会不断的展开在展开的过程中我们很容易就能发现在递归的过程中会有重复计算而且递归层次越深冗余计算就会越多。计算就会很慢 int Fib(int n) {if (n2) {return 1;}else{return Fib(n - 1) Fib(n - 2);} } ​ int main() {int n 0;scanf(%d, n);int ret Fib(n);printf(%d, ret); } 迭代方式实现 在函数体内部定义了三个整型变量 a、b 和 c分别用于保存斐波那契数列中的相邻三个数。 在循环体内c a b; 表示将变量 c 赋值为 a 和 b 的和即斐波那契数列中的下一个数。 接着更新 a 和 b 的值将 a 更新为原来的 b将 b 更新为原来的 c以便下一次迭代计算。 int Fib(int n) {int a 1;int b 1;int c 1;while (n2){c a b; //a b;b c;n--;//减到2的时候退出循环}return c; } ​ int main() {int n 0;scanf(%d, n);int r Fib(n);printf(%d\n, r);return 0; } 3.编写一个函数实现n的k次方使用递归实现。 思考一下,什么是限制条件? 当指数k一直减减减到为0的时候,那么结果返回1,结束递归 power(n, k - 1): 这部分是递归调用它会计算 n 的 k - 1 次方。这就是递归的关键它通过反复调用自身来逐步减小问题的规模。 n * power(n, k - 1): 这里将 n 与 n 的 k - 1 次方相乘从而得到 n 的 k 次方。因为 n 的 k 次方可以表示为 n 乘以 n 的 k - 1 次方。 #include stdio.h ​ // 递归函数计算n的k次方 double power(double n, int k) {// 递归基if (k 0)return 1;// 若k为负数则返回1除以n的-k次方if (k 0)return 1 / power(n, -k);// 递归计算n的k次方return n * power(n, k - 1); } ​ int main() {double n;int k;printf(请输入底数n和指数k);scanf(%lf%d, n, k);double result power(n, k);printf(%.2lf的%d次方为%.2lf\n, n, k, result);return 0; } 4.写一个递归函数DigitSum(n)输入一个非负整数返回组成它的数字之和 例如调用DigitSum(1729)则应该返回1729它的和是19 输入1729输出19 int DigitSum(int n) {if (n 10)return n;else{int sum n % 10 DigitSum(n / 10);return sum;} } int main() {int n 0;scanf(%d, n);printf(%d, DigitSum(n));return 0; } ​ 5.递归方式实现打印一个整数的每一位 分析:用递归的方法 我们将 1234 按顺序输出 1 2 3 4 我们可以定义一个Print()函数 先递推:(一直递推到最高位,然后再从最高位开始打印,就会按顺序输出) (1234) 除以十去掉最后一位 (123) 4 (123) 4 --- (12) 3 4 ---- (1)2 3 4 --- 1 2 3 4 每次都调用自己,直到不能再分(限制条件) 后回归: 最后当n1的时候不满足n9的条件,达到限制条件然后进行回归, 1%10 1 12%102 123%10 3 然后再顺序输出1 2 3 int Print(int n) {if (n 9)//当n是两位数以上{Print(n / 10);}printf(%d , n % 10); } int main() {int n 0;scanf(%d, n);Print(n); } 6.实现求n的阶乘 递归和非递归分别实现不考虑溢出的问题 递归的方法 当n0的时候 阶层为1 限制条件 不等于0的时候就算阶层 //递归方式 int Fact(int n) {if (0 n) {return 1;}else{return n * Fact(n - 1);} } int main() {int n 0;scanf(%d, n);int ret Fact(n);printf(%d, ret);return 0; } 非递归方法 int Fact(int n) {int sum 1;int i 0;for (i 1; i n; i) {sum * i;}return sum;} int main() {int n 0;scanf(%d, n);int ret Fact(n);printf(%d, ret);return 0; }
http://www.w-s-a.com/news/4920/

相关文章:

  • 洛阳网络建站公司网站开发主流语言
  • 广州各区正在进一步优化以下措施seo值是什么意思
  • 滨州建网站公司京东云 wordpress
  • 网站视频背景怎么做免费的网络推广有哪些
  • 申请网站怎样申请广西壮族自治区专升本业务系统
  • 写作网站哪个网站做ic外单好
  • 苏州和城乡建设局网站撸撸撸做最好的导航网站
  • 网站被同行抄袭怎么办深圳中装建设集团
  • 建站及推广瓦房店 网站建设
  • 怎么查网站是在哪里备案的广州电力建设有限公司网站
  • 做网站自己申请域名还是对方wordpress管理地址
  • 专门做二手书网站或appwordpress首页显示特定分类文章
  • 无锡网站设计厂家一建十个专业含金量排名
  • 网站刷链接怎么做成都高度网站技术建设公司
  • flash网站模板怎么用xml网站地图生成
  • 英文网站优化群晖wordpress中文
  • saas建站平台源码济南品牌网站建设公司
  • 网站建设一般是用哪个软件网站百度
  • 企业建站的作用是什么南宁公司网站开发
  • 厦门网站建设及维护门户网站开发视频教学
  • 可以做兼职的网站有哪些自动点击器永久免费版
  • 建购物网站怎么建呀网站怎么做中英文交互
  • 网站建设费用计入无形资产做网站用的主机
  • 佛山企业网站建设平台沈阳网站建设培训班
  • 河南企业网站优化外包网站怎么做来流量
  • 网站建设的参考文献网站设计网页的优缺点
  • WordPress多站點支付插件内江市网站建设培训
  • 做做网站已更新动漫制作专业需要学什么
  • dfv印花图案设计网站网站建设应该应聘什么岗位
  • 网站后台管理系统模板下载专业网站推广的公司哪家好