`
exceptionhelp
  • 浏览: 48134 次
社区版块
存档分类
最新评论

将一个整数的每位数分解并按逆序输出

    博客分类:
  • java
阅读更多
今天分享一个"将一个整数的每位数分解并按逆序输出"。这个问题我们可以有两种解法,一种是递归,一种是非递归。我们先来说说递归解法。
这里面我们回用到两个运算符,%和/。/是求商,%取余。
递归:首先找递归的出口,我们这个出口是当n的绝对值小于10的时候我们把它放进一个list中然后函数返回。因为整数包括负整数,我们这里会取绝对值。接下来我们找递归方程,如果我们输入的数是123.那么我们应该递归123/10。在递归前我们要存储123%10,也就时存储他的个位数。具体代码如下:
public void nxCQ(int n) {
if (n < 0) {
n = Math.abs(n);
}
if (n < 10) {
list.add(n);
return;
}
list.add(n%10);
nxCQ(n/10);
}

下面我们来说说非递归。如果n小于0,那么我们取n的绝对值赋给n,如果n小于10,我们把n存入list之后返回。如果n>10,做一个while循环,循环条件是!(n / 10 == 0)。最后不要忘了list.add(n);
原文地址http://www.exceptionhelp.com/posts/541
0
0
分享到:
评论

相关推荐

    python 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字 (示例)

    # 题目: # 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 # 分析: # 学会分解出每一位数。

    将一个正整数n(长整型)输出成“千分位”形式,即从个位数起,每三位之间加一个逗号,例如,将7654321输出成7,654,321;

    这个Python函数通过不断取余和整除操作,将数字分解为每三位一组,并在适当的位置添加逗号。当数字大于零时,继续处理,直到所有位数都被处理完。 在Java中,可以使用`DecimalFormat`类,但同样没有直接针对整数的...

    java 输入一个数字,反转输出这个数字的值(实现方法)

    在Java编程语言中,有时我们需要实现一个功能,即输入一个数字并将其反转后输出。这里我们将探讨如何在Java中实现这个功能,通过一个简单的程序来完成数字反转。 首先,我们创建一个名为`数字反转`的类(`...

    数据结构第2次作业-2020版.docx

    给定一个非零正整数,要求将其各位数字分开,并在每个数字之间至少插入一个空格。例如,输入12085,则输出应为“1 2 0 8 5”。 #### 2. 解决方案 **(1)递归方法** - **思路**:通过递归的方式将数字逐位分解并...

    大整数乘法(分治法)

    在大整数乘法中,可以将每个 n 位大整数分解成两个 n/2 位的子整数,分别计算它们的乘积,然后组合结果以得到最终的乘积。 在这个实验报告中,我们使用了分治法来设计大整数乘法算法。首先,将每个 n 位大整数 X 和...

    c语言设计超长整数计算器

    这个过程类似于将两个数的每一位都与对方的每一位相乘,然后按位相加所有中间结果。 在Visual Studio环境中,你可以创建一个C语言项目,编写上述算法的源代码,并利用其丰富的调试工具进行测试。设置断点,观察变量...

    数据结构(C语言)栈的应用 数值转换源代码

    4. **输出结果**:最后,通过不断弹出栈中的元素并按顺序输出,得到最终的八进制数表示。 #### 栈结构体定义 ```c typedef int Elemtype; typedef struct Stack { Elemtype* top; Elemtype* base; int stacksize...

    十进制整数换为二至九进制之间的任意进制数输出

    在这个过程中,我们可以将每个余数作为一个新节点插入链表的头部,这样从链表尾部到头部的数字序列就对应了目标进制的表示。 对于链表操作,我们需要注意以下几点: - 初始化链表:创建一个空链表,或者一个只有一...

    C语言或者考研复试上机练习题.doc

    题目要求找到一个三位数,其每一位数字的阶乘之和等于该数本身。这涉及到循环遍历三位数范围,计算阶乘,并进行条件判断。这里的知识点包括循环、取模运算、除法运算、条件判断以及阶乘的计算。 3. **斐波那契数列...

    python基础练习(100题)

    - **题目描述**:给定一个不多于5位的正整数,求其位数并逆序打印。 - **解题思路**: - 使用循环遍历数字的每一位。 - 计算位数并逆序打印。 **【程序30】** - **题目描述**:判断一个5位数是否为回文数。 - **...

    大整数的乘法 很好的

    对于两个大整数A和B的乘法操作,可以将其分解为对两个数组中的每个元素进行逐位相乘,并考虑进位问题。具体步骤如下: 1. **初始化**:首先创建一个足够大的数组`pro`用于存放乘积结果,长度至少是两数组长度之和。...

    JavaSE题库.docx

    这里需要使用程序逻辑来设计一个算法,将问题分解成小问题,并使用 JavaSE 中的语句来实现。 4. 输入 3 个整数,求和、最大值、平均值 * 知识点:输入输出语句、算术操作 * 本题要求输入 3 个整数,求其和、最大值...

    阶乘计算 编写程序,对给定的n(n≦100),

    通过另一个for循环,程序通过取模运算(sum%10)得到每一位数字,并将其存储在数组a[i]中。同时,通过整除运算(sum/10)更新sum的值,直到其小于1,此时a[0]的值就代表了阶乘值的位数。最后,程序使用第三个for循环...

    c语言作业113道

    在编写程序求两个数的最大公约数(GCD)和最小公倍数(LCM)时,我们通常采用欧几里得算法,该算法基于这样一个数学定理:两个正整数a和b(a&gt;b),它们的最大公约数和b与a除以b的余数的最大公约数相等。通过不断地将...

    java经典编程题

    9.给一个不多于五位的正整数,求它是几位数,并逆序输出它的各位数字; 10.请输入星期几的第一个字母来判断是星期几,如果一样,则判断第二个字母; 11.求一个3*3矩阵对角线元素之和; 12.有一个已经排好序的数组,...

    Java面试-算法笔试26题.doc

    解决方案是使用一个递归函数,逐步将整数的每一位数字提取出来,并将其存储在数组中。例如,整数123456789可以被逆序后存储为一个数组{9, 8, 7, 6, 5, 4, 3, 2, 1}。 高于平均分的学生学号及成绩 在这道题目中,...

    MOOC习题:程序设计入门——C语言-浙江大学-翁恺1

    例如,将输入的三位数转换为字符串,然后从后往前遍历字符串,再将其转换回整数并输出。 2.1 时间换算(5 分)此题可能要求将一种时间单位转换成另一种,比如将分钟转换为小时和分钟的形式。这需要理解时间单位之间...

    头歌上机测试题目测试题

    这个题目要求程序员编写程序,将用户输入的一个整数逆序输出。在处理这个问题时,循环语句依然扮演着重要角色,它被用来重复地取出数字的个位数,并通过算术运算符来实现数字的逆序。控制语句如if-else结构用于判断...

    期末复习JAVA题.docx

    这个程序展示了一个简单的数组逆序输出方法,通过从数组末尾开始遍历并打印元素,实现了数组元素的反序显示。 4. **水仙花数**: 水仙花数是指三位数,其每一位上的立方和等于该数本身。程序通过遍历100到999,...

    C语言经典例题100道

    ### 将一个数组逆序输出 此题需要我们编写程序,将数组中的元素逆序输出。 ### static定义静态变量用法 此题要求我们理解并使用`static`关键字来定义静态变量。 ### 使用auto定义变量用法 本题需要我们了解并...

Global site tag (gtag.js) - Google Analytics