差之毫厘,谬之千里——函数的递归!
使用递归的方法计算一个正整数的阶乘,正整数从键盘输入。
代码如下:
import java.util.Scanner;
static int 递归阶乘(int n) {if (n == 2)return 2;return n * 递归阶乘(n - 1);
}public static void main(String[] args) {int num = getScannerInt();System.out.println(递归阶乘(n));
}
}
看似没有任何问题,但eclipse提示第18行有一个错误
编译之后结果如下
不能将n解析为变量?!此刻的我还是找不出哪里错了。
想到此程序中定义的变量只有两个,一个n,一个num。难道这里应该是num?先试一下吧!
public static void main(String[] args) {int num = getScannerInt();System.out.println(递归阶乘(num));
}
神奇的事情发生了,竟然没有了错误。但还是不确定程序能否运行。
于是运行程序计算5!,答案120,竟然歪打正着。
那么为什么递归这里不是n,而是num呢?debug一下看看。此时,我明白了。num保存的是键盘输入的值,num!=5!,看来一开始就理解错了。真是差之毫厘,谬之千里。
差之毫厘,谬之千里——函数的递归!相关推荐
- 生成器/迭代器 和 函数的递归
生成器 一个包含yield关键字的函数就是一个生成器函数.yield可以为我们从函数中返回值,但是yield又不同于return,return的执行意味着程序的结束,调用生成器函数不会得到返回的具体的 ...
- python之路--嵌套函数、匿名函数、高阶函数。函数的递归
嵌套函数 函数里不仅可以写代码,还可以嵌套函数 name = "小猿圈"def change():name = "小猿圈,自学编程"def change2(): ...
- 三目运算法求一个大值,以及指定位数的应用,以及函数的声明,以及函数的嵌套,以及函数的递归,以及用递归法求阶乘
1.三目运算法 首先一般方法比较两个数的大小 用空格和回车都一样 当结果非x即y的时候 我们可以用三目运算法 z=x>y?x:y 如果表达式成立取前面的值,如果表达式不成立取后面的值 也可以改成 ...
- Python函数的递归调用
一:递归的定义 函数的递归调用:是函数嵌套调用的一种特殊形式 具体是指: 在调用一个函数的过程中又直接或者间接地调用到本身 # 直接调用本身 def f1():print('是我是我还是我')f1() ...
- 函数的递归调用(专题)
函数的递归调用(专题) 递归调用:函数的递归调用,就是函数在执行的时候自动调用自己! 功能:当我们把一个大问题按照某种解决方案细化为若干个小问题的时候,结果我们发现这些小问题的解决方案又和前面大问题的 ...
- mysql通过函数完成10的阶乘_请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!...
点击查看请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!具体信息 答:include "stdio.h" int fac(int k) { if(k==1) ...
- Day05:装饰器,三元表达式,函数的递归,匿名/内置函数,迭代器,模块,开发目录...
上节课复习: 1.函数的对象 函数可以被当作数据取处理 2.函数嵌套 嵌套调用:在调用一个函数时,函数体代码又调用了其他函数 嵌套定义:在一个函数内部又定义了另一个函数 1 d ...
- python中递归函数的基例_详谈Python基础之内置函数和递归 Python递归和循环的区别...
Python 递归函数基例 2. 关于递归函数基例的说明,以下选项中错误的是 A 递归函数的基例决定所谓基例就是不需要递归就能求解的,一般来说是问题的最小规模下的解. 例如:斐波那契数列递归,f(n) ...
- python装饰器模式带参数_Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列)...
Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列) 一丶带参数的装饰器 def wrapper_out(pt): def wrapper(func): ...
最新文章
- tm matlab,[转载]关于matlab中textread
- mysql5.7单机多实例_Mysql 5.7.21单机多实例安装
- 【开发技术】视频URL采集
- linux cisco路由器,怎样让linux做cisco路由器的专用日志服务器
- python获取数组中最多的元素
- JavaScript实现longestCommonSubsequence最长公共子序列算法(附完整源码)
- Java BufferedReader skip()方法与示例
- matlab 30案例 目录,MATLAB-智能算法30个案例分析-终极版(带目录).doc
- NHibernate初探(五) 多对多关系测试示例
- 汇编语言基础之二 - 各种寻址和过程进出简介
- 嵌入式字符设备驱动——ULN2003步进电机驱动程序实现
- 华为云盘(华为云空间)免费空间
- HIVE中 ROW_NUMBER() OVER() 函数
- cocos2dx android工程接入联通Unipay sdk
- python - 数据类型
- 8个提高摸鱼效率的python自动化脚本,提高打工人幸福感~
- ArcGIS(ESRI)的发展历史和版本历史(简介)
- mysqlit根据稀有值随机选择_三中锋教练来过了!实况足球20赛季DP7.0后新增稀有阵型top10...
- 华为 2017 实习生招聘笔试题
- linux多网卡配置ip地址(linux一个网卡配置多个ip)