leetcode 1281. 整数的各位积和之差

118 阅读1分钟

[toc] leetcode 1281. 整数的各位积和之差

题目描述

  1. 整数的各位积和之差

给你一个整数 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 <= 10^5

解题思路

法1

模拟:

  1. 维护两个变量,一个储存积值,一个储存和值

  2. 计算各位的积值与和值(循环取余取各位值)

  3. 返回各位积值与和值的差值

  • 时间复杂度(O(n))
  • 空间复杂度(O(1))

执行结果

法1

func subtractProductAndSum(n int) int {
//i为积值,j为和值
i,j:=1,0
for n>0{
    t:=n%10
    i*=t
    j+=t
    n/=10
}
return i-j
}

执行结果: 通过 显示详情 查看示例代码 添加备注

执行用时: 0 ms , 在所有 Go 提交中击败了 100.00% 的用户 内存消耗: 1.8 MB , 在所有 Go 提交中击败了 80.00% 的用户 通过测试用例: 123 / 123 炫耀一下:

本文由mdnice多平台发布