24.数学实验
题目描述
给出一个数字n,需要不断地将所有数位上的值做乘法运算,直至最后数字不发生变化为止。
问最后生成的数字为多少?
输入
10
返回值
0
输入
55
返回值
0
说明
55 -> 5 * 5 = 25 -> 2 * 5 = 10 -> 1 * 0 = 0
分析
1.因为是一个不确定位数的数字,所以需要对该数字进行不断的取模和除以10,就可以取到每一位的数字了
2.为什么在这里定义为1?因为每次需要对其实现“归零操作”,就是保证下一次可以顺利的进行
3.最后加一个判断条件退出即可,当res为个位数时,就不可以再继续分,也就是对10取模为0时,作为一个退出条件
代码实现
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param n long长整型 老师给牛牛的数字
* @return int整型
*/
public int mathexp(long n) {
while (true) {
long res = 1;
while (n != 0) {
res = res * (n % 10);
n = n / 10;
}
n = res;
if (n < 10)
break;
}
return (int) n;
}
}