如何将分割数字分别用于单独的数字算法

时间:2015-01-13 10:07:15

标签: java algorithm

我回到软件开发,我正在玩java中的算法,今天我在做算法时将数字拆分成一个单独的数字,我在这里找到了它我用java编写它..但是老实说我不怎么样?有代码只是我没有理解它的一部分:

public static void main(String[] args) {
    Integer test = 0, i, N;
    ArrayList array_one= new ArrayList<Integer>();
    Scanner sc = new Scanner(System.in);

    System.out.print("Write An Integer :");
    test = sc.nextInt();
    while (test > 0){
      int mod = test % 10; // <= DON'T UNDERSTAND THE WORK OF THAT PART
                           // (i know it's the modulo of the entered value)
       test = test / 10;
       array_one.add(mod);
    }
    System.out.print(array_one);
}

我知道这是一个新手问题,我对软件工程和算法充满热情,只想知道它是如何工作的,并提前知道。

5 个答案:

答案 0 :(得分:1)

test % 10;为您提供数字的最后一个(最不重要)数字,即将数字除以10时的余数。

test = test / 10将数字减少一位数(123456变为12345),使之前的第二个最低有效数字成为新的最低有效数字。因此,在下一次迭代中,test % 10;将返回第二个数字。

等等......

答案 1 :(得分:0)

使用%10,您只会获得最后一位数字。 /10将提供您最后一位数之前的内容。

所以你可以构建你的数组。

124%10 --> 4
124/10 --> 12   % 10 --> 2
             12 / 10 --> 1

答案 2 :(得分:0)

test % 10;  --> Always gives you the last digit.
 test / 10; --> divides the existing number by 10.
 while loop --> executes until test > 0

So, if your number is 234,
234%10 would be 4
234/10 would be 23.4 which will be converted to 23.

Apply 23 % 10 and 23/10 and so on..

答案 3 :(得分:0)

此处使用的逻辑是首先将数字除以10并获取提醒值来分隔单位。

例如x = 153

“%”是赋予除法余数的模数运算符 “/”是仅给出商

的除法运算符

然后153%10 = 3 //这是分隔第一个数字的余数。 然后将数字除以10,以得到商

即153/10 = 15 //只有商

循环进行,现在将15作为新的原始数字,再次除以10得到余数,从而得到下一个数字。

即15%10 = 5 //下一个数字      一十分之一十五= 1;

 1%10=1    //digit
 1/10=0   //The loop ends here

答案 4 :(得分:-1)

你可以通过一个例子来理解它 你的数字除以它的数字是345
如果将它除以10,则剩余的第一个数字为5