java数位倒置递归_有人能解释一下这个递归代码如何在java中反转int吗?
r根本不用
10*r+n%10
实际上,这是一件很棘手的事情,而且很酷。
这是一个很好的例子,说明变量命名不当会使代码难以理解。我们有3行代码可以实际执行某些操作,但它的工作原理并不明显。
private static int NOTHING_REVERSED_SO_FAR = 0;
private static int reverse(int numberToBeReversed, int reversalSoFar) {
if (numberToBeReversed == 0) return reversalSoFar;
return reverse(numberToBeReversed/10, 10*reversalSoFar + numberToBeReversed%10);
}
public static int reverse(int numberToBeReversed) {
return reverse(numberToBeReversed, NOTHING_REVERSED_SO_FAR);
}
所以我们首先调用public方法。假设我们通过123作为数字的倒数。这将调用未经更改传递123的私有版本,并将reversalSoFar初始化为0。
所以马上,你就可以看到,如果numberToberVersed是0,我们就返回到目前为止计算出的值。我建议您编写一个junit测试来挑战他的断言。
所以当我们递归的时候,我们到底在做什么?首先,我们并不是真的把数字除以10。我们在做分区,通过
递归地。未更改反向的数字。
分割结果为123->123/10->12。(由于是int数据类型,分数丢失了。)好的,我们将传递一个12作为第一个参数。第二个论点呢。我们知道我们通过了0的逆转。所以我们有10*(0)+(123)%10。123在这里是正确的,因为我们没有改变数字。结果是3。所以我们将再次递归,通过12和3。
现在,进行下一次迭代。
0. 123 0
1. 12 3
2. ?? ?
java数位倒置递归_有人能解释一下这个递归代码如何在java中反转int吗?相关推荐
- java怎么计算等式_谁能解释计算这个等式的步骤? Java的
在解决此类问题时,您可以尝试观察"趋势"或"模式". 鉴于:100/1 99/2 98/3 97/4 96/5 - 3/98 2/99 1/100 我们得出:分 ...
- java请求接口示例_用示例解释Java接口
java请求接口示例 介面 (Interfaces) Interface in Java is a bit like the Class, but with a significant differe ...
- java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析
0. 前言 大家好,我是多选参数的程序员,一个正再 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己再这块确实很弱,需要大补(残废了一般) ...
- java怎么编程方程_[编程入门]自定义函数求一元二次方程-题解(Java代码)
令一元二次方程判别式: b2 - 4ac为变量P **当P > 0时:** x1 = (-b+sqrt(P)) / 2a x1 = (-b-sqrt(P)) / 2a **当P = 0时:** ...
- java 等待几秒_问懵逼:请站在 JVM 角度谈谈 Java 的锁?
存在的问题 自旋锁 自适应自旋 Java 对象的内存布局(重要) synchronized 锁升级流程 偏向锁 轻量级锁 重量级锁 可重入 悲观锁(互斥锁.排他锁) <Java 2019 超神之 ...
- java编写三角形问题_软件测试实验1:为三角形问题编写一个Java程序,并用Junit测试程序...
实验报告 实验内容: 1.Install Junit(4.12), Hamcrest(1.3) with Eclipse 2.Install Eclemma with Eclipse 3.Write ...
- 浅层学习与深层学习_深层副本与浅层副本-以及如何在Swift中使用它们
浅层学习与深层学习 by Payal Gupta 通过Payal Gupta 深层副本与浅层副本-以及如何在Swift中使用它们 (Deep copy vs. shallow copy - and h ...
- java实验文法报告_西安邮电大学编译原理LL文法分析器实验(java).doc
西安邮电大学编译原理LL文法分析器实验(java) <编译原理>实验报告 题目: 语法分析器的制作 学生姓名: 班 级: 软件1202 学 号: 指导教师: 成 绩: 西安邮电大学计算机学 ...
- Python后端转JAVA最快多久_【动力节点】老杜支招:Java小白学习入门攻略,涵盖学习路线...
动力节点在B站的直播相当好,相当受欢迎,教学总监亲自解惑.零基础学Java的同学确实把思路打开不少. 回顾:11月14日晚8:00,杜老师在动力节点B站大咖直播间,首次开播与粉丝面基,本场直播不吹,不 ...
最新文章
- Exchange 2003 在多域环境中的部署
- HtmlUnit爬取页面列表链接
- SpringMVC拦截器之介绍和搭建环境
- 如何删除git config中的某一个配置项
- 大型分布式C++框架《三:序列化与反序列化》
- Unity3D引擎工作笔记0002---Unity3D 5下载安装
- 如何确定电脑主板坏了_原阳县地暖漏水如何检测
- 基于速度学习机的局部感受野
- php内置函数什么语言,语言构造和PHP中的“内置”函数有什么区别?
- word批量替换交叉引用格式
- 应用COMSOL Multiphysics分析水平井压裂裂缝应力干扰现象
- 全球与中国SS-OCT激光市场深度研究分析报告
- 讲真,别再用文氏图(Venn diagram)解释 SQL 连接查询了!
- 滚动轴承特征频率计算推导过程
- 计算语言学之语法理论
- 基于Java+SpringBoot+vue实现图书借阅和销售商城一体化系统
- iOS 高仿美图定制
- 如何将mkv视频格式转换mp4格式?
- TT生态圈——跨境深度精选
- 政府网站公文中的错别字在线检查工具
热门文章
- 阿里开始招聘.NET,要求WPF!
- 平台or职位,你怎么选?
- 多亏我缓存技术过硬!疫情防控项目上线,我只用了5天!
- WTM系列视频教程:View和Taghelper
- .Net Core中IOC容器的使用
- [功能发布]Excel催化剂2周年巨献-网页数据采集功能发布,满足90%合理场景使用...
- 使用RabbitMQ实现接口补偿
- .NET Core IdentityServer4实战 第Ⅳ章-集成密码登陆模式
- 微软推出新语言Bosque,超越结构化程序设计
- 撒花!中文翻译仓库链接已加入 ML.NET 官方示例网站首页