精华内容
下载资源
问答
  • 什么是递归函数

    万次阅读 多人点赞 2018-02-21 09:42:10
    递归函数 递归 例题 特点 效率 优点 递归函数 递归 递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。 当函数在一直...

    递归函数

    递归

    递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件
    当函数在一直递推,直到遇到墙后返回,这个墙就是结束条件
    所以递归要有两个要素,结束条件与递推关系

    注:

    递归的时候,每次调用一个函数,计算机都会为这个函数分配新的空间,这就是说,当被调函数返回的时候,调用函数中的变量依然会保持原先的值,否则也不可能实现反向输出。

    例题

    1. 计算n的阶乘
    #include <stdio.h> 
    int factorial(int n)
    {
        int result;
        if (n<0)                                          //判断例外
        {
            printf("输入错误!\n");
            return 0;
        } 
        else if (n==0 || n==1)
        {
            result = 1;  //回推墙
        }
        else
        {
            result = factorial(n-1) * n;  //递推关系,这个数与上一个数之间的关系。
        }
        return result;
    }
    
    int main(){
        int n = 5;                                              //输入数字5,计算5的阶乘
        printf("%d的阶乘=%d",n,factorial(n));
        return 0;
    }
    

    程序在计算5的阶乘的时候,先执行递推,当n=1或者n=0的时候返回1,再回推将计算并返回。由此可以看出递归函数必须有结束条件

    1. 斐波那契数列

    斐波那契数列指的是这样一个数列:

    0, 1, 1, 2, 3, 5, 8, 13, 21, ···
    

    这个数列从第三项开始,每一项都等于前两项之和.

    #include <stdio.h>
    
    long fibonacci( long num )
    {
        if ( num == 0 || num == 1 )
        {
            return num;
        }
        else
        {
            return fibonacci( num -1 ) + fibonacci( num -2 );
        }
    }
    
    void main()
    {
        long number;
        puts("请输入一个正整数: ");
        scanf("%ld", &number);
        printf("斐波那契数列第%ld项为: %ld\n", number, fibonacci( number ) );
    
    }
    
    

    这里写图片描述

    1. 应用题~~

    小明为了学好英语,需要每天记单词,第一天记1个,第二天记2个依次类推,请用代码完成,算出小明第10天开始的时候会了多少个单词?

    分析:
    墙(结束条件)是“第一天记1个”
    递推关系是“第n天记的单词= 第n-1天记的单词数量+n"

    #include <stdio.h>
    /* 定义获取单词数量的函数 */
    int getWordNumber(n)
    {   
        if(n == 1)
        {
            return 1;    //回推墙
        }
        else{
            return getWordNumber(n-1)+n ;       //递推关系
        }
    }
    int main()
    {
        int num = getWordNumber(10);     //获取会了的单词数量
        printf("小明第10天记了:%d个单词。\n", num);
        return 0;
    }
    

    特点

    递归函数特点:

    1. 每一级函数调用时都有自己的变量,但是函数代码并不会得到复制,如计算5的阶乘时每递推一次变量都不同;
    2. 每次调用都会有一次返回,如计算5的阶乘时每递推一次都返回进行下一次;
    3. 递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序;
    4. 递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反;
    5. 递归函数中必须有终止语句。
    

    一句话总结递归:自我调用且有完成状态。

    效率

    1. 系统栈(也叫核心栈、内核栈)
      是内存中属于操作系统空间的一块区域,其主要用途为: (1)保存中断现场,对于嵌套中断,被中断程序的现场信息依次压入系统栈,中断返回时逆序弹出; (2)保存操作系统子程序间相互调用的参数、返回值、返回点以及子程序(函数)的局部变量。

    2. 用户栈
      是用户进程空间中的一块区域,用于保存用户进程的子程序间相互调用的参数、返回值、返回点以及子程序(函数)的局部变量。
      我们编写的递归程序属于用户程序,因此使用的是用户栈。

    3. 栈溢出
      函数调用的参数是通过栈空间来传递的,在调用过程中会占用线程的栈资源。而递归调用,只有走到最后的结束点后函数才能依次退出,而未到达最后的结束点之前,占用的栈空间一直没有释放,如果递归调用次数过多,就可能导致占用的栈资源超过线程的最大值,从而导致栈溢出,导致程序的异常退出。

    综上:

    函数调用的时候,每次调用时要做地址保存,参数传递等,这是通过一个递归工作栈实现的。具体是每次调用函数本身要保存的内容包括:局部变量、形参、调用函数地址、返回值。那么,如果递归调用N次,就要分配N次局部变量、N次形参、N次调用函数地址、N次返回值,势必效率低.

    优点

    1. 代码简洁、清晰,易懂

    循环能干的事,递归都能干;递归能干的循环不一定能干

    对于我们,能用循环解决的,尽量不适用递归.

    展开全文
  • VB中spc(n)函数、space(n)函数和tab(n)函数区别

    万次阅读 热门讨论 2017-06-23 12:20:04
    VB中spc()函数、space()函数和tab()函数区别:用最简单的话来描述是:tab(n)和spc(n)都是用来把光标向后移动n个字符的位置tab(n)是绝对偏移量,从该列的开头开始计算,移动n个字符的位置.spc(n)是相对偏移量....

    VB中spc()函数、space()函数和tab()函数区别:

    用最简单的话来描述是:

    tab(n)和spc(n)都是用来把光标向后移动n个字符的位置

    tab(n)是绝对偏移量,从该列的开头开始计算,移动n个字符的位置.

    spc(n)是相对偏移量.从光标处开始计算,移动n个字符的位置.

    space跟他们不同:

    space() 是插入多少个空格. space(5) 就是插入5个空格.

     

     与Print方法有关的函数 
    1.Tab函数
    与 Print # 语句或 Print 方法一起使用,对输出进行定位。 式: Tab[(n)]

    Tab函数把显示或打印位置移到由参数n指定的列数。

    当在一个 Print方法中有多个Tab函数时,每个Tab函数对应一个输出项,各输入项之间用分号隔开。例如:

    Print Tab(10); “姓名”; Tab(30); “年龄"

    说明:

    ①参数n为数值表达式,其值为一整数,它是下一个输出位置的列号,表示在输出前把光标(或打印头)移到该列。通常最左边的列号为1,如果当前的显示位置已经超过n,则自动下移一行。

    ②在VB中,对参数n的取值范围没有具体限制。当n比行宽大时,显示位置为n Mod行宽;如果n<1,则把输出位置移到第一列。

    ③当在一个Print方法中有多个Tab函数时,每个Tab函数对应一个输出项,各输出项之间用分号隔开。

    建立一个图片框,名称改为A。

          A.print "1234567890"

          A.print tab(3);"mm" ;tab(7);"mm"

     

        "1234567890"是用来确定字符位的,能清楚的看到tab函数的结果。
     
     

    代码中,tab(3)所以“mm”从第三字符开始显示,tab(7)所以第二个“mm”从第七个字符位开始显示。

     
     
    2.Spc函数

    在显示或打印列表中的下一个表达式之前插入n个空格数。

    格式:Spc(n)

    当Print方法与不同大小的字体一起使用时,使用Spc函数打印的空格字符的宽度是所有字符的平均值。

    Spc函数与Tab函数的作用类似,可以互相代替。但应注意,Tab函数从对象的左端开始记数,而Spc函数只表示两个输出项之间的间隔。例如:

    Print “ABC"; Spc(5); “DEF"

    3.空格函数

    格式:Space$(n)

    Space$函数返回n个空格。例如(在立即窗口中试验):

    a$ ="a"+Space$(4)+"b" Print a$ a b
     
     
    展开全文
  • inputn函数与input函数的区别

    千次阅读 2014-09-27 21:10:17
    inputn函数与input函数的区别(这里的比较类似于前面的inputc函数) ①input函数可以将字符型变量转换为字符型或数值型,这取决于指定的输入格式informat;而inputn函数只能将字符型变量转换为数值型。从这个角度上看...

    inputn函数与input函数的区别(这里的比较类似于前面的inputc函数)
    ①input函数可以将字符型变量转换为字符型或数值型,这取决于指定的输入格式informat;而inputn函数只能将字符型变量转换为数值型。从这个角度上看,跟inputc函数一样,可以将inputn函数的功能理解为input函数功能的子集。
    ②inputn函数可以动态的指定输入格式,而input函数则不可以。上面的示例中,如果将inputn函数换为input函数,则SAS不会解析dateinformat变量,而是将其当作输入格式,所以提示有语法错误。而inputn函数,则可以接受这种存储在变量中的输入格式。
    ③inputn函数可以在宏函数%sysfunc()中使用,而input函数不可以。
    ④inputn函数的输入格式informat需要用引号引起来,而input函数则不需要。

    2. inputn函数与inputc函数的比较
    inputn函数与inputc函数都是读取字符型数值,inputn函数是用数值型输入格式读取,结果为数值型数据;inputc韩式是用字符型输入格式读取,结果为字符型数据。

    展开全文
  • a) 是什么意思? 形参,C++中特有的引用类型参数传递,有修改实参的功能。 比如 string string::strtok(string &amp;str); C++的返回类型当然可以是类 类型了,没说一定只能是基本的int,long什么的。 第一个类名...

    类名 类名::函数名(类名 &a) 是什么意思?
    形参,C++中特有的引用类型参数传递,有修改实参的功能。
    比如 string string::strtok(string &str);
    C++的返回类型当然可以是类 类型了,没说一定只能是基本的int,long什么的。
    第一个类名 是函数的返回类……
    第二个是指函数是 这个“类名”所指类的成员函数。
    第三个类名是指函数第一个参数的类型。

    欢迎使用Markdown编辑器

    你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

    新的改变

    我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

    1. 全新的界面设计 ,将会带来全新的写作体验;
    2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
    3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
    4. 全新的 KaTeX数学公式 语法;
    5. 增加了支持甘特图的mermaid语法1 功能;
    6. 增加了 多屏幕编辑 Markdown文章功能;
    7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
    8. 增加了 检查列表 功能。

    功能快捷键

    撤销:Ctrl/Command + Z
    重做:Ctrl/Command + Y
    加粗:Ctrl/Command + B
    斜体:Ctrl/Command + I
    标题:Ctrl/Command + Shift + H
    无序列表:Ctrl/Command + Shift + U
    有序列表:Ctrl/Command + Shift + O
    检查列表:Ctrl/Command + Shift + C
    插入代码:Ctrl/Command + Shift + K
    插入链接:Ctrl/Command + Shift + L
    插入图片:Ctrl/Command + Shift + G

    合理的创建标题,有助于目录的生成

    直接输入1次#,并按下space后,将生成1级标题。
    输入2次#,并按下space后,将生成2级标题。
    以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

    如何改变文本的样式

    强调文本 强调文本

    加粗文本 加粗文本

    标记文本

    删除文本

    引用文本

    H2O is是液体。

    210 运算结果是 1024.

    插入链接与图片

    链接: link.

    图片: Alt

    带尺寸的图片: Alt

    当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

    如何插入一段漂亮的代码片

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    // An highlighted block
    var foo = 'bar';
    

    生成一个适合你的列表

    • 项目
      • 项目
        • 项目
    1. 项目1
    2. 项目2
    3. 项目3
    • 计划任务
    • 完成任务

    创建一个表格

    一个简单的表格是这么创建的:

    项目Value
    电脑$1600
    手机$12
    导管$1

    设定内容居中、居左、居右

    使用:---------:居中
    使用:----------居左
    使用----------:居右

    第一列第二列第三列
    第一列文本居中第二列文本居右第三列文本居左

    SmartyPants

    SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

    TYPEASCIIHTML
    Single backticks'Isn't this fun?'‘Isn’t this fun?’
    Quotes"Isn't this fun?"“Isn’t this fun?”
    Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

    创建一个自定义列表

    Markdown
    Text-to- HTML conversion tool
    Authors
    John
    Luke

    如何创建一个注脚

    一个具有注脚的文本。2

    注释也是必不可少的

    Markdown将文本转换为 HTML

    KaTeX数学公式

    您可以使用渲染LaTeX数学表达式 KaTeX:

    Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

    Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t &ThinSpace; . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

    你可以找到更多关于的信息 LaTeX 数学表达式here.

    新的甘特图功能,丰富你的文章

    Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
    • 关于 甘特图 语法,参考 这儿,

    UML 图表

    可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

    张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

    这将产生一个流程图。:

    链接
    长方形
    圆角长方形
    菱形
    • 关于 Mermaid 语法,参考 这儿,

    FLowchart流程图

    我们依旧会支持flowchart的流程图:

    Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
    • 关于 Flowchart流程图 语法,参考 这儿.

    导出与导入

    导出

    如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

    导入

    如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。


    1. mermaid语法说明 ↩︎

    2. 注脚的解释 ↩︎

    展开全文
  • c++如下定义类函数后加冒号是什么意思 什么时候这么用 如 M( const char* in_file ):m_w(),m_object_morph(true) 这是对类成员初始化的意思,一般用于对父类成员初始化。 如果子类中有无参构造函数而而父类中...
  • /*用函数编写计算整数n的阶乘n!*/ /*函数功能:用迭代法计算n! 函数入口参数:整型变量n表示阶乘的阶数 函数返回值:返回n!的值*/ long fact(int n)/*函数定义*/ { int i; long result=1;/*之所以会用long类型,...
  • 离散数学n元真值函数

    千次阅读 多人点赞 2019-09-08 12:12:47
    我偶然间看见了这个 n 元真值函数,发现如果没接触过类似的东西,直接看书上写的东西,似乎会有点晕,于是写下这篇博客,记录我对它的理解过程。
  • [数据结构] 基本概念 PrintN函数实现

    千次阅读 2017-09-20 00:36:47
    PrintN函数实现 循环实现 递归实现 编译过程中出现的问题 参考资料PrintN函数实现实现一个函数PrintN,使得传入一个正整数N的参数后,能顺序打印从1到N的全部正整数。 途径1:通过循环实现; 途径2:通过递归实现。 ...
  • fill()函数和fill_n()函数

    千次阅读 2018-06-13 01:55:45
    fill函数的作用是:将一...fill_n函数的作用是:参数包括 : 一个迭代器,一个计数器以及一个值。该函数从迭代器指向的元素开始,将指定数量的元素设置为给定的值。注意: 不能在没有元素的空容器上调用fill_n函数。...
  • pandas 之unique()函数nunique()函数区别

    万次阅读 多人点赞 2019-06-23 13:50:10
    很多功能函数自己试一试就全知道了,开始看别人的代码一直不太清楚两者的区别,总是模糊的以为它俩是一样的,是获取唯一值。 其实从名字就能看出区别: unique()是以 数组形式(numpy.ndarray)返回列的所有唯一值...
  • SUMX2MY2函数,你知道什么意思吗?

    千次阅读 2020-11-19 08:49:33
    Excel的SUMX2MY2函数的主要作用是计算数组对应值的平方差之和。 上一篇文章介绍了SUMX2PY2函数使用方法,今天介绍Microsoft Excel中SUMX2MY2函数的公式语法和用法。 SUMX2MY2函数功能 SUMX2MY2 函数用于计算两个数组...
  • 计算斐波那契数列第n项的函数定义如下: int fib(int n){ if(n==0) return 1; else if(n==1) return 2; else return fib(n-1)+fib(n-2); } 请问fib(1)-fib(9)各调用 多少次fib函数 解答: 对于...
  • Python定义计算N的阶乘的函数

    万次阅读 2019-06-29 21:28:57
    定义计算N的阶乘的函数 1)使用循环计算阶乘 def frac(n): r = 1 if n<=1: if n==0 or n==1: return 1 else: print('n 不能小于0') else: for i in range(1, n+1): ...
  • 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n, 当输入n为奇数时,调用函数 1/1+1/3+...+1/n(利用指针函数)。
  • os.urandom(n)函数解释Python

    万次阅读 2018-07-05 22:46:32
    os.urandom(n)函数在python官方文档中做出了这样的解释 函数定位: Return a string of n random bytes suitable for cryptographic...然后这个函数,在文档中,被归结于os这个库的Miscellaneous Functions,意思是...
  • strtok()这是一个让人很迷惑的函数。在MSDN中查到它的用法,如下: // crt_strtok.c// compile with: /W3// In this program, a loop uses strtok// to print all the tokens
  • tf.add_n函数的用法

    万次阅读 2017-05-30 10:25:50
    tf.add_n([p1, p2, p3....])函数是实现一个列表的元素的相加。就是输入的对象是一个列表,列表里的元素可以是向量,矩阵,等 例如: import tensorflow as tf; import numpy as np; input1 = tf.constant([1.0, ...
  • 什么是sign函数(符号函数

    万次阅读 2019-06-16 11:34:51
    sign函数(符号函数) 在logistic回归中,利用sigmoid函数实现,当x>0,y=1;当x<0时,y=0; σ(x)=11+ex\sigma(x) = \frac{1}{1+e^x}σ(x)=1+ex1​ tanh函数: tanh(x)=ex−e−xex+e−xtanh(x)=\frac{e^x-...
  • 什么是回调函数

    万次阅读 2018-08-03 17:33:36
    回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中,由别人(或系统)的函数在运行时来调用的函数函数是你实现的,但由别人(或系统...
  • 在C语言中可调用log(n)函数求In(n),log函数的引用说明是:double log(double x) 例如,若n的值为10,则fun函数值为3.886440。 请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干...
  • 常用激活函数(激励函数)理解与总结

    万次阅读 多人点赞 2018-05-13 23:07:19
    引言 学习神经网络的时候我们总是听到...激活函数的用途(为什么需要激活函数)? 有哪些激活函数,都有什么性质和特点? 应用中如何选择合适的激活函数? 如果你对以上几个问题不是很清楚,下面的内容对你是有...
  • 函数为POWER(VALUE,N) 以开2次方为例 /**mysql 开方计算函数**/ SELECT VALUE,POWER(VALUE,2) FROM test;   求N次方根,POWER(VALUE,1/N)以2为例 /**mysql 开平方根函数**/ SELECT VALUE,POWER(VALUE,1/2) ...
  • * 写一个函数,输入n,求斐波那契(Fibonacci) 数列的第n项 * @param n Fibonacci数的项数 * @return 第n项的结果 在数学上,费波那契数列是以递归的方法来定义: (n≧2) public static long fibonacci(int...
  • 对数函数

    万次阅读 2019-11-10 22:27:37
    一般地,对数函数是以幂(真数)为自变量,指数为因变量,底数为常量的函数。 对数函数是6类基本初等函数之一。其中对数的定义: 如果ax=N(a>0,且a≠1),那么数x叫做以a为底N的对数,记作x=logaN,读作以a为...
  • 一、什么是凸函数  对于一元函数\(f(x\)),如果对于任意\(t\epsilon[0,1]\)均满足:\(f(tx_1 + (1-t)x_2) \leq tf(x_1) + (1-t)f(x_2)\),则称\(f(x)\)为凸函数(convex function)  如果对于任意\(t\epsilon(0,1)...
  • 递归函数n的阶乘

    万次阅读 2015-12-27 16:54:46
    输入一个正整数n,利用递归函数n的阶乘。 递归函数声明如下: int fac(int n);  //求n!的递归函数声明 Input 一个正整数n Output n的阶乘值 Sample Input 5 Sample Output 120 #include   ...
  • 比如自定义一个类Node ,重载赋值运算符 Node& operator=(const Node& n){} Node后面加一个&代表什么意思啊? 谢谢
  • 例题:请补充main函数,该函数的功能是:求n!。 例如,5!=120。 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。 代码如下: #include<stdio.h> #include<conio.h> main() { int i,n...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,112,633
精华内容 1,245,053
关键字:

n函数是什么意思