如何通过在java中执行每个数字的乘积来从一组数字中找到单个数字

时间:2012-04-26 14:46:18

标签: java algorithm

我有一个像99的数字 现在我需要得到一个像 -

这样的单个数字
9*9 = 81
8*1 = 8

ex2:
3456 3*4*5*6
360 3*6*0

除了将数字更改为字符/字符串然后与每个相邻字符串相乘后,获取输出的有效方法是什么。

让我让问题变得更复杂,如果我想获得将N变为单个数字所需的步骤数,那么递归可能会使步骤失去并且只需要在单个方法中完成

4 个答案:

答案 0 :(得分:4)

假设这些是整数,你可以使用基数(10)的除法和模数:

81 / 10 = 8
81 % 10 = 1

对于第二个示例,您需要使用while (X >= 10)循环。

答案 1 :(得分:1)

这个递归函数应该这样做......

int packDown( int num ) {
  if( num < 10 ) return num ;
  int pack = 1 ;
  while( num > 0 ) {
    pack *= num % 10 ;
    num /= 10 ;
  }
  return packDown( pack ) ;
}

答案 2 :(得分:1)

public static int digitMultiply(int number) {
    int answer = 1;
    while (number > 0) {
        answer=answer*(number % 10);
        number = number / 10;
    }
    return answer;
}
希望它有所帮助!!简单算法乘以..

答案 3 :(得分:1)

以下单个递归方法也应该起作用:

int multDig(int number){
  if(number >= 10)
    return multDig((number%10) * multDig(number/10));
  else
    return number;
}