我有一个像99的数字 现在我需要得到一个像 -
这样的单个数字9*9 = 81
8*1 = 8
ex2:
3456 3*4*5*6
360 3*6*0
除了将数字更改为字符/字符串然后与每个相邻字符串相乘后,获取输出的有效方法是什么。
让我让问题变得更复杂,如果我想获得将N变为单个数字所需的步骤数,那么递归可能会使步骤失去并且只需要在单个方法中完成
答案 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;
}