今天分享一个"将一个整数的每位数分解并按逆序输出"。这个问题我们可以有两种解法,一种是递归,一种是非递归。我们先来说说递归解法。
这里面我们回用到两个运算符,%和/。/是求商,%取余。
递归:首先找递归的出口,我们这个出口是当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
分享到:
相关推荐
# 题目: # 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 # 分析: # 学会分解出每一位数。
这个Python函数通过不断取余和整除操作,将数字分解为每三位一组,并在适当的位置添加逗号。当数字大于零时,继续处理,直到所有位数都被处理完。 在Java中,可以使用`DecimalFormat`类,但同样没有直接针对整数的...
在Java编程语言中,有时我们需要实现一个功能,即输入一个数字并将其反转后输出。这里我们将探讨如何在Java中实现这个功能,通过一个简单的程序来完成数字反转。 首先,我们创建一个名为`数字反转`的类(`...
给定一个非零正整数,要求将其各位数字分开,并在每个数字之间至少插入一个空格。例如,输入12085,则输出应为“1 2 0 8 5”。 #### 2. 解决方案 **(1)递归方法** - **思路**:通过递归的方式将数字逐位分解并...
在大整数乘法中,可以将每个 n 位大整数分解成两个 n/2 位的子整数,分别计算它们的乘积,然后组合结果以得到最终的乘积。 在这个实验报告中,我们使用了分治法来设计大整数乘法算法。首先,将每个 n 位大整数 X 和...
这个过程类似于将两个数的每一位都与对方的每一位相乘,然后按位相加所有中间结果。 在Visual Studio环境中,你可以创建一个C语言项目,编写上述算法的源代码,并利用其丰富的调试工具进行测试。设置断点,观察变量...
4. **输出结果**:最后,通过不断弹出栈中的元素并按顺序输出,得到最终的八进制数表示。 #### 栈结构体定义 ```c typedef int Elemtype; typedef struct Stack { Elemtype* top; Elemtype* base; int stacksize...
在这个过程中,我们可以将每个余数作为一个新节点插入链表的头部,这样从链表尾部到头部的数字序列就对应了目标进制的表示。 对于链表操作,我们需要注意以下几点: - 初始化链表:创建一个空链表,或者一个只有一...
题目要求找到一个三位数,其每一位数字的阶乘之和等于该数本身。这涉及到循环遍历三位数范围,计算阶乘,并进行条件判断。这里的知识点包括循环、取模运算、除法运算、条件判断以及阶乘的计算。 3. **斐波那契数列...
- **题目描述**:给定一个不多于5位的正整数,求其位数并逆序打印。 - **解题思路**: - 使用循环遍历数字的每一位。 - 计算位数并逆序打印。 **【程序30】** - **题目描述**:判断一个5位数是否为回文数。 - **...
对于两个大整数A和B的乘法操作,可以将其分解为对两个数组中的每个元素进行逐位相乘,并考虑进位问题。具体步骤如下: 1. **初始化**:首先创建一个足够大的数组`pro`用于存放乘积结果,长度至少是两数组长度之和。...
这里需要使用程序逻辑来设计一个算法,将问题分解成小问题,并使用 JavaSE 中的语句来实现。 4. 输入 3 个整数,求和、最大值、平均值 * 知识点:输入输出语句、算术操作 * 本题要求输入 3 个整数,求其和、最大值...
通过另一个for循环,程序通过取模运算(sum%10)得到每一位数字,并将其存储在数组a[i]中。同时,通过整除运算(sum/10)更新sum的值,直到其小于1,此时a[0]的值就代表了阶乘值的位数。最后,程序使用第三个for循环...
在编写程序求两个数的最大公约数(GCD)和最小公倍数(LCM)时,我们通常采用欧几里得算法,该算法基于这样一个数学定理:两个正整数a和b(a>b),它们的最大公约数和b与a除以b的余数的最大公约数相等。通过不断地将...
9.给一个不多于五位的正整数,求它是几位数,并逆序输出它的各位数字; 10.请输入星期几的第一个字母来判断是星期几,如果一样,则判断第二个字母; 11.求一个3*3矩阵对角线元素之和; 12.有一个已经排好序的数组,...
解决方案是使用一个递归函数,逐步将整数的每一位数字提取出来,并将其存储在数组中。例如,整数123456789可以被逆序后存储为一个数组{9, 8, 7, 6, 5, 4, 3, 2, 1}。 高于平均分的学生学号及成绩 在这道题目中,...
例如,将输入的三位数转换为字符串,然后从后往前遍历字符串,再将其转换回整数并输出。 2.1 时间换算(5 分)此题可能要求将一种时间单位转换成另一种,比如将分钟转换为小时和分钟的形式。这需要理解时间单位之间...
这个题目要求程序员编写程序,将用户输入的一个整数逆序输出。在处理这个问题时,循环语句依然扮演着重要角色,它被用来重复地取出数字的个位数,并通过算术运算符来实现数字的逆序。控制语句如if-else结构用于判断...
这个程序展示了一个简单的数组逆序输出方法,通过从数组末尾开始遍历并打印元素,实现了数组元素的反序显示。 4. **水仙花数**: 水仙花数是指三位数,其每一位上的立方和等于该数本身。程序通过遍历100到999,...
### 将一个数组逆序输出 此题需要我们编写程序,将数组中的元素逆序输出。 ### static定义静态变量用法 此题要求我们理解并使用`static`关键字来定义静态变量。 ### 使用auto定义变量用法 本题需要我们了解并...