求:
给你一个整数 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
解:
思路:很直观,将整数先转换为字符串,然后从左到右扫描字符串,获取各个位置上的字符,使用2个变量分别记录当前的积和和,最后返回积和之差。
int
subtractProductAndSum(
int
n){
int
mul =
1
;
int
sum =
0
;
char
strN[
6
];
itoa(n,strN,
10
);
char
*p;
for
(p=strN;*p!=
'
\
0
'
;p++){
mul *= *p-
'0'
;
sum += *p-
'0'
;
}
return
mul-sum;
}
来源:oschina
链接:https://my.oschina.net/u/4469818/blog/4278524