码迷,mamicode.com
首页 > 其他好文 > 详细

1317. 将整数转换为两个无零整数的和『简单』

时间:2020-05-11 23:47:52      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:main   目录   turn   res   tco   image   OLE   java   contain   

题目来源于力扣(LeetCode

一、题目

1317. 将整数转换为两个无零整数的和

题目相关标签:数学

技术图片

技术图片

提示:

  • 2 <= n <= 10^4

二、解题思路

根据题目说明:存在多个有效解决方案时,可以返回其中任意一个

2.1 暴力法

  1. 从 1 开始遍历

  2. 判断 n - 1 的差中是否包含数字零

  3. 包含数字零时,使 1 向 n 每次加 1,再次判断两数是否均不包含数字零

  4. 两项均不包含数字零时,将两项数字存储到数组中,return

三、代码实现

3.1 暴力法

public static int[] getNoZeroIntegers(int n) {
    int[] result = new int[2];

    for (int i = 1; i < n; i++) {
        // 相加的两项数字均不能包含零
        if (!numContainZero(i) && !numContainZero(n - i)) {
            result[0] = i;
            result[1] = n - i;
            return result;
        }
    }
    return result;
}

// 判断一个数中是否包含数字零
public static boolean numContainZero(int num) {
    while (num != 0) {
        // num % 10 == 0 时说明 num 值必含有数字零
        if (num % 10 == 0) {
            return true;
        }
        num /= 10;
    }
    return false;
}

四、执行用时

4.1 暴力法

技术图片

五、部分测试用例

public static void main(String[] args) {
//        int n = 2;  // output:{1, 1}
//        int n = 10000;  // output:{1, 9999}
//        int n = 11;  // output:{2, 9}
    int n = 4102;  // output:{111, 3991}
//        int n = 69;  // output:{1, 68}
//        int n = 1010;  // output:{11, 999}
    int[] result = getNoZeroIntegers(n);
    System.out.println(Arrays.toString(result));
}

1317. 将整数转换为两个无零整数的和『简单』

标签:main   目录   turn   res   tco   image   OLE   java   contain   

原文地址:https://www.cnblogs.com/zhiyin1209/p/12872833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!