LeetCode 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. 将整数转换为字符串;
  2. 定义变量summul分别表示各位的积和,并初始化;
  3. 遍历字符串,将各位字符转换为整数,进行积和运算;
  4. 返回积和之差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;
    }
}
发布了138 篇原创文章 · 获赞 72 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/github_39655029/article/details/105448729