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

成都官方网站建设泉州seo外包

成都官方网站建设,泉州seo外包,江门网站建设服务,怎样接入互联网这里写目录标题 一、递归定义二、递归思想三、递归的限制条件及注意事项四、递归的例子五、跳台阶问题 一、递归定义 定义:递归是一种解决问题的一种方法(函数的应用),即函数自己调用自己。 补充知识: 迭代&#xff1…

这里写目录标题

    • 一、递归定义
    • 二、递归思想
    • 三、递归的限制条件及注意事项
    • 四、递归的例子
    • 五、跳台阶问题

一、递归定义

定义:递归是一种解决问题的一种方法(函数的应用),即函数自己调用自己。
补充知识:
迭代:通常是使用循环结构。

二、递归思想

把一个复杂问题层层转化为一个个与原问题相同的小问题。递即递推,归即回归。

三、递归的限制条件及注意事项

限制条件:

  1. 存在限制条件,即满足一定的条件就不再递归了。
  2. 每递归一次,就逐步接近限制条件。

注意事项:
1.有重复运算的情况下,不要使用递归,而是使用迭代。
2.递归的深度不能太深。

四、递归的例子

1. 输入一个整数,然后按顺序打印

#include <stdio.h>
void Print(int num)
{if (num < 9){printf("%d ", num);}else{Print(num / 10);printf("%d ", num % 10);}
}
int main()
{int input = 0;//输入整数while (scanf("%d", &input) != EOF){Print(input);printf("\n");}return 0;
}

2.实现n的阶乘(使用递归)

#include <stdio.h>
int Fact(int n)
{if (0 == n){return 1;}else{return n * Fact(n - 1);}}
int main()
{int n = 0;while (scanf("%d", &n) != EOF){int ret = Fact(n);printf("%d\n", ret);}return 0;
}

使用for语句实现n的阶乘(使用迭代)

int main()
{int n = 0;while (scanf("%d", &n) != EOF){int ret = 1;if (0 == n){printf("%d", ret);}else{for (int i = 1; i <= n; i++){ret *= i;}printf("%d\n", ret);}}return 0;
}

五、跳台阶问题

(1)爬楼梯,小明一次可以爬一个,两个或三个台阶。计算小明爬上楼梯的方法。
使用递归方法:

int climpstairs(int n)
{if (n <= 2){return n;}else if (3 == n){return 4;}//4+2+1elsereturn climpstairs(n - 1) + climpstairs(n - 2) + climpstairs(n - 3);
}
int main()
{int n = 0;printf("请输入台阶数:");scanf("%d", &n);int ret =climpstairs(n);printf("小明爬上台阶n的方法有%d种\n", ret);return 0;
}

使用非递归方法:

int climpstairs(int n)
{if (n <= 2){return n;}int arr[100];arr[1] = 1;arr[2] = 2;arr[3] = 4;for (int i = 4; i <=n; i++){arr[i] = arr[i - 1] + arr[i - 2] + arr[i - 3];}return arr[n];
}int main()
{int n = 0;printf("请输入台阶数:");scanf("%d", &n);int ret =climpstairs(n);printf("小明爬上台阶n的方法有%d种\n", ret);return 0;
}

(2)小明一次可以爬一个,两个,三个或四个台阶。计算他爬台阶n有多少种方法。

int climpstairs(int n)
{if (n <= 2){return n;}else if (3 == n){return 4;}else if (4 == n){//4+2+1+1return 8;}//n=5  8+4+2+1elsereturn climpstairs(n - 1) + climpstairs(n - 2) + climpstairs(n - 3)+climpstairs(n-4);
}
int main()
{int n = 0;printf("请输入台阶数:");scanf("%d", &n);int ret = climpstairs(n);printf("小明爬上台阶n的方法有%d种\n", ret);return 0;
}

使用非递归方法。

int climpstairs(int n)
{if (n <= 2){return n;}int arr[100] = { 0 };arr[1] = 1;//1arr[2] = 2;//2arr[3] = 4;//2+1+1arr[4] = 8;//4+2+1+1for (int i = 5; i <= n; i++){arr[i] = arr[i - 1] + arr[i - 2] + arr[i - 3] + arr[i - 4];}return arr[n];
}
int main()
{int n = 0;printf("请输入小明要爬的台阶数:", n);scanf("%d", &n);int ret = climpstairs(n);printf("小明爬上台阶n的方法有%d种\n", ret);return 0;
}
http://www.hkea.cn/news/455276/

相关文章:

  • 矿山建设网站天津网络推广seo
  • 国内优秀的响应式网站深圳专业seo外包
  • 重庆装修价格c盘优化大师
  • 银行网站 设计方案外包优化网站
  • 做网站是学什么专业软件外包企业排名
  • wordpress商城 中文站百度站长平台网址
  • 建手机网站的软件有哪些南宁百度seo价格
  • 做网站私活长沙网络营销公司
  • 网站建设公司 广告法被处罚沧州网络推广外包公司
  • 电商网站 开发成本惠州seo外包服务
  • 佛山做网站建设价格百度网盘官方下载
  • 网上购物商城网站建设个人免费域名注册网站
  • 成都学网站建设电子营销主要做什么
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具
  • 西宁网站建设最好的公司哪家好优秀网站设计案例
  • 沧州做网站费用搜索引擎优化是做什么的
  • 社区网站推广方案线上运营的5个步骤
  • 湘潭学校网站建设 z磐石网络网站关键词优化教程
  • wordpress多程序用户同步汕头seo排名
  • 旅游网站 建设平台分析百度seo一本通
  • 怎么用dw做网站app开发网站
  • 昆山做网站的公司有哪些seo整站优化推广
  • 网站建设谈单情景对话青岛seo百科
  • 网站做自适应好不好网页分析报告案例
  • 大连手机自适应网站建设公司seo诊断站长
  • 有哪些好的网站十大电商代运营公司