leetcode力扣刷题笔记——1281
1281. 整数的各位积和之差
给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。
解题思路
把整数拆成数组,用两个循环分别计算出各位积和各位和,然后进行相减得到结果。至于如何拆分整数,有两个思路,一个是计算出整数的位数,然后循环用%10的方法去取每一位;另一个是将整数转为字符串,再转成字符数组,用range取值。
- 整数转字符串
func subtractProductAndSum(n int) int {
nums := strconv.Itoa(n)
var addition,time = 0,1
for i,v := 0,0; i<len(nums); i++ {
//Atoi有两个返回值,value和err
v,_ = strconv.Atoi(nums[i:i+1])
addition += v
time *= v
}
return time-addition
}
- 取模
func subtractProductAndSum(n int) int {
var addition,time,v = 0,1,0
for i := 0;n!=0; {
v = n/int(math.Pow(2, float64(i)))%10
addition += v
time *= v
n = n/10
}
return time-addition
}