目标
给你一个整数 n。
将 n 中所有的 非零数字 按照它们的原始顺序连接起来,形成一个新的整数 x。如果不存在 非零数字 ,则 x = 0。
sum 为 x 中所有数字的 数字和 。
返回一个整数,表示 x * sum 的值。
示例 1:
输入: n = 10203004
输出: 12340
解释:
非零数字是 1、2、3 和 4。因此,x = 1234。
数字和为 sum = 1 + 2 + 3 + 4 = 10。
因此,答案是 x * sum = 1234 * 10 = 12340。
示例 2:
输入: n = 1000
输出: 1
解释:
非零数字是 1,因此 x = 1 且 sum = 1。
因此,答案是 x * sum = 1 * 1 = 1。
说明:
- 0 <= n <= 10^9
思路
计算整数 n 的所有非零数字之和记为 sum,去掉 n 中的 0 形成的新整数记为 x,返回 x * sum 的值。
依题意模拟即可。
代码
/**
* @date 2026-07-07 9:13
*/
public class SumAndMultiply3754 {
public long sumAndMultiply(int n) {
long sum = 0;
long x = 0;
int base = 1;
while (n > 0) {
int rem = n % 10;
sum += rem;
x += rem * base;
base *= rem == 0 ? 1 : 10;
n /= 10;
}
return x * sum;
}
}
性能
