Java实现:求正整数位数并逆序打印
版权申诉
53 浏览量
更新于2024-08-04
收藏 2KB TXT 举报
"这是一道关于编程算法的题目,主要涉及Java语言的实现。目标是给定一个不超过5位的正整数,首先计算它有多少位(位数),然后将其各位数字逆序输出。提供了两种不同的实现方法。"
在第一种实现中,创建了一个名为`Reversed`的类,包含两个方法:`Digit`和`Output`。`Digit`方法通过不断除以10来计算数字的位数,当数字大于10的n次方时,n就是位数。`Output`方法则用来逆序打印数字的各位,它使用循环结构,通过模运算和除法获取每一位数字,然后将它们加到`sum`上,最后返回`sum`。
代码中的关键部分包括:
1. `int n = 0;` 初始化位数为0。
2. `while (m > Math.pow(10, n)) { n++; }` 这个循环用于计算位数,当数字m大于10的n次方时,说明还有更高的位数,所以增加n。
3. `int temp1 = (int) (m % Math.pow(10, n - i));` 计算当前位的数字。
4. `int temp2 = (int) (temp1 / Math.pow(10, n - i - 1));` 获取该位的值。
5. `int temp = (int) (temp2 * Math.pow(10, i));` 将该位的值转换为适当的位。
6. `sum += temp;` 将每一位的值累加到总和中。
7. `System.out.println(x + "的位数:" + r.Digit(x) + "位");` 打印数字的位数。
8. `System.out.println(x + "的逆序:" + r.Output(x));` 打印逆序后的数字。
第二种实现方式同样是创建一个`Reversed2`类,但方法更简洁。`Digit`方法直接返回输入字符串`s`的长度,即数字的位数。`Output`方法将输入的数字字符串转换为字符数组,然后从后往前遍历数组,将字符依次添加到新字符串`str`中,从而实现逆序。
关键部分包括:
1. `int a = s.length();` 直接计算字符串的长度得到位数。
2. `char[] c = s.toCharArray();` 将字符串转换为字符数组。
3. `for (int i = c.length - 1; i >= 0; i--) { str += c[i]; }` 遍历字符数组,从后往前构建逆序字符串。
4. `System.out.println(s + "的位数:" + r.Digit(s) + "位");` 输出数字的位数。
5. `System.out.println(s + "的逆序:" + r.Output(s));` 输出逆序后的数字。
这两种方法都有效地解决了题目所要求的问题,分别展示了两种不同的算法思路,一种基于数学运算,另一种基于字符串操作。
2011-09-25 上传
2020-12-23 上传
2020-08-31 上传
2024-10-09 上传
2023-06-02 上传
2023-05-24 上传
2024-10-29 上传
2024-10-02 上传
2024-09-13 上传
小小哭包
- 粉丝: 2050
- 资源: 4206
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录