题目
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
解题思路
- 将整数转换为字符串;
- 定义变量
sum
和mul
分别表示各位的积和,并初始化; - 遍历字符串,将各位字符转换为整数,进行积和运算;
- 返回积和之差
mul - sum
;
实现
package math;
/**
* Created with IntelliJ IDEA.
* Version : 1.0
* Author : 村雨遥
* Email : [email protected]
* Website : https://cunyu1943.github.io
* 公众号 : 村雨遥
* Date : 2020/4/5 22:19
* Project : LeetCode
* Package : math
* Class : OneTwoEightOne
* Desc : 1281. 整数的各位积和之差
*/
public class OneTwoEightOne {
public static void main(String[] args) throws Exception {
OneTwoEightOne oneTwoEightOne = new OneTwoEightOne();
int n = 4421;
System.out.println(oneTwoEightOne.subtractProductAndSum(n));
}
/**
* 整数的各位积和之差
* @param n
* @return 整数的各位积和之差
*/
public int subtractProductAndSum(int n) {
String str = String.valueOf(n);
System.out.println(str);
int sum = 0;
int mul = 1;
for (int i = 0; i < str.length(); i++) {
sum += (int)(str.charAt(i) - '0');
mul *= (int)(str.charAt(i) - '0');
}
return mul - sum;
}
}