黑马程序员技术交流社区
标题:
获取一个数值的每一位通过递归怎么做到?
[打印本页]
作者:
陈圳
时间:
2013-2-23 11:09
标题:
获取一个数值的每一位通过递归怎么做到?
本帖最后由 陈圳 于 2013-2-23 13:25 编辑
通过下面这种方式也可以获得,但是学习了递归之后,我想用递归的方式做出来.感觉难以下手.大家一起分析一下.
public int[] getNum(int num) //获取一个数值每一位的方法
{
int arr[]=new int[4]; //假设数值的位数为4,就是千位.
for(int i=(arr.length-1),x=10;i>=0;i--)
{
arr
=num%x; //取一个整数的每一位数的方法 %10得低位,从个位开始把值赋给arr
,
num/=x;// 除10使数减少.因为最低位已经取得了.
}
return arr; //这个数组里存储着数值的每一位
}
作者:
许鑫星
时间:
2013-2-23 11:32
public static void getNum(int num) //获取一个数值每一位的方法,倒序
{
if(num/10==0) {
System.out.println(num%10);//最高位
}else{
System.out.println(num%10);
getNum(num/10);
}
}
复制代码
为了方便我就直接打印了,可以倒序存进数组再返回。
作者:
王钊
时间:
2013-2-23 11:44
您要的答案:
public class Test
{
int[] arr=new int[4];//将数组设置为成员变量
private int index=3;//数组的索引
public static void main(String[] args)
{
Test t=new Test();
t.recursion(1000);
for (int i=0;i<t.arr.length;i++)
{
System.out.println(t.arr[i]);
}
}
public void recursion(int value)
{
if (value<10)//递归出口,如果递归到了个位数,也就是递归该结束了
{
arr[index]=value;
return;
}
else
{
arr[index--]=value%10;//将value的最后一位数放在数组最后面,然后递归
recursion(value/10);//递归
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2