【Java】力扣 - 刷题笔记 - 1281
【Java】力扣 - 刷题笔记 - 1281
每日一道题,提升一点点
题目介绍
1281. 整数的各位积和之差
给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。
示例 1:
输入:n = 234
输出:15
解释:
各位数之积 = 2 * 3 * 4 = 24
各位数之和 = 2 + 3 + 4 = 9
结果 = 24 - 9 = 15
示例 2:
输入:n = 4421
输出:21
解释:
各位数之积 = 4 * 4 * 2 * 1 = 32
各位数之和 = 4 + 4 + 2 + 1 = 11
结果 = 32 - 11 = 21
提示:
- 1 <= n <= 105
解题思路
- 1.题目分析
这里限制了 n 的大小区间为 [1,105],这样就比较好处理了
我们取 n%10 就得到 n 的最后一位数,n / 10 得到去除最后一位之后的数;依次循环,直到 n = 0 即可
然后将各个 n % 10 求积 和 求和 的值取差值即可
public int subtractProductAndSum(int n) {
// 初始化各位数之积为1
int product = 1;
// 初始化各位数之和为0
int sum = 0;
for (int i = 1; i <= 5; i++) {
// 依次取各位数去 乘积 与 加和
if (n > 0) {
product *= n%10;
sum += n%10;
n = n / 10;
} else {
break;
}
}
// 初始化乘积与加和的差
int res = product - sum;
return res;
}
}
- 2.提交结果