Giter Club home page Giter Club logo

Comments (5)

xiongcaihu avatar xiongcaihu commented on May 5, 2024 3
/**
 *能被2整除的数,个位上的数能被2整除(偶数都能被2整除),那么这个数能被2整除

能被3整除的数,各个数位上的数字和能被3整除,那么这个数能被3整除

能被4整除的数,个位和十位所组成的两位数能被4整除,那么这个数能被4整除

能被5整除的数,个位上为0或5的数都能被5整除,那么这个数能被5整除

能被6整除的数,各数位上的数字和能被3整除的偶数,如果一个数既能被2整除又能被3整除,那么这个数能被6整除

能被7整除的数,若一个整数的个位数字截去,再从余下的数中,减去个位数的2倍,如果差是7的倍数,则原数能被7整除。如果差太大或心算不易看出是否7的倍数,就需要继续上述「截尾、倍大、相减、验差」的过程,直到能清楚判断为止。例如,判断133是否7的倍数的过程如下:13-3×2=7,所以133是7的倍数;又例如判断6139是否7的倍数的过程如下:613-9×2=595 , 59-5×2=49,所以6139是7的倍数,余类推。

能被8整除的数,一个整数的末3位若能被8整除,则该数一定能被8整除。

能被9整除的数,各个数位上的数字和能被9整除,那么这个数能被9整除
 *
 */
function find9Number() {
    for (var a = 1; a <= 9; a++) { //1
        for (var b = 1; b <= 9; b++) { // 2
            if (a == b) continue;
            if (b % 2 != 0) continue;

            for (var c = 1; c <= 9; c++) { //3
                if (c == b || c == a) {
                    continue;
                }
                if ((a + b + c) % 3 != 0) {
                    continue;
                }
                for (var d = 1; d <= 9; d++) { // 4
                    if (d == a || d == b || d == c) {
                        continue;
                    }

                    if ((c * 10 + d) % 4 != 0) continue;

                    for (var e = 1; e <= 9; e++) { // 5
                        if (e == a || e == b || e == c || e == d) {
                            continue;
                        }
                        if (e != 5) continue;

                        for (var f = 1; f <= 9; f++) { //6
                            if (f == a || f == b || f == c || f == d || f == e) {
                                continue;
                            }
                            if ((a + b + c + d + e + f) % 3 != 0 || f % 2 != 0) {
                                continue;
                            }
                            for (var g = 1; g <= 9; g++) { // 7
                                if (g == a || g == b || g == c || g == d || g == e || g == f) {
                                    continue;
                                }
                                var str = '' + a + b + c + d + e + f;
                                if ((Number(str) - g * 2) % 7 != 0) continue;

                                for (var h = 1; h <= 9; h++) { // 8
                                    if (h == a || h == b || h == c || h == d || h == e || h == f || h == g) continue;
                                    var str = '' + f + g + h;
                                    if (Number(str) % 8 != 0) continue;
                                    for (var i = 1; i <= 9; i++) { // 9
                                        if ((a + b + c + d + e + f + g + h + i) % 9 != 0) continue;

                                        console.log(a, b, c, d, e, f, g, h, i);
                                        return Number("" + a + b + c + d + e + f + g + h + i);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

from leetcode.

xiongcaihu avatar xiongcaihu commented on May 5, 2024

简化一下

function findNumber() {
    var flag = 1,
        map = new Set(),
        a = 1,
        b = 1,
        c = 1,
        d = 1,
        e = 1,
        f = 1,
        g = 1,
        h = 1,
        i = 1;
    while (true) {
        switch (flag) {
            case 1:
                while (map.has(a) && a <= 9) a++;
                a > 9 ? flag = 10 : (flag = 2, map.add(a));
                break;
            case 2:
                while ((map.has(b) || b % 2 != 0) && b <= 9) b++;
                b > 9 ? (flag = 1, map.delete(a), a++, b = 1) : (flag = 3, map.add(b));
                break;
            case 3:
                while ((map.has(c) || (a + b + c) % 3 != 0) && c <= 9) c++;
                c > 9 ? (flag = 2, map.delete(b), b++, c = 1) : (flag = 4, map.add(c));
                break;
            case 4:
                while ((map.has(d) || (c * 10 + d) % 4 != 0) && d <= 9) d++;
                d > 9 ? (flag = 3, map.delete(c), c++, d = 1) : (flag = 5, map.add(d));
                break;
            case 5:
                while ((map.has(e) || e != 5) && e <= 9) e++;
                e > 9 ? (flag = 4, map.delete(d), d++, e = 1) : (flag = 6, map.add(e));
                break;
            case 6:
                while ((map.has(f) || ((a + b + c + d + e + f) % 3 != 0 || f % 2 != 0)) && f <= 9) f++;
                f > 9 ? (flag = 5, map.delete(e), e++, f = 1) : (flag = 7, map.add(f));
                break;
            case 7:
                while ((map.has(g) || (Number("" + a + b + c + d + e + f) - g * 2) % 7 != 0) && g <= 9) g++;
                g > 9 ? (flag = 6, map.delete(f), f++, g = 1) : (flag = 8, map.add(g));
                break;
            case 8:
                while ((map.has(h) || Number('' + f + g + h) % 8 != 0) && h <= 9) h++;
                h > 9 ? (flag = 7, map.delete(g), g++, h = 1) : (flag = 9, map.add(h));
                break;
            case 9:
                while ((map.has(i) || (a + b + c + d + e + f + g + h + i) % 9 != 0) && i <= 9) i++;
                i > 9 ? (flag = 8, map.delete(h), h++, i = 1) : flag = 10;
                break;
            case 10:
                return "" + a + b + c + d + e + f + g + h + i;
        }
    }
}

from leetcode.

watchpoints avatar watchpoints commented on May 5, 2024

认领

from leetcode.

azl397985856 avatar azl397985856 commented on May 5, 2024

认领

帅哥 快一个月了 出来解题了

from leetcode.

ruoguang avatar ruoguang commented on May 5, 2024
/**
 * 找出一个九位数,这个数包含了1-9这九个数字,并且这九个数的前n位能被n整除,
 * 若这个数为abcdefghi,则ab可以被2整除,abc可以被3整除... abcdefghi可以被9整除。
 */
public class Test {
    public static void main(String[] args) {
        System.out.println(result()); //381654729
    }


    public static int result() {
        int result = -1;
        int a = 0;
        int b = 0;
        int c = 0;
        int d = 0;
        int e = 0;
        int f = 0;
        int g = 0;
        int h = 0;
        int i = 0;
        HashSet<Integer> set = new HashSet<Integer>();

        for (int j = 123456789; j <= 987654321; j++) {
            a = j / 100000000;
            b = j / 10000000 % 10;
            c = j / 1000000 % 10;
            d = j / 100000 % 10;
            e = j / 10000 % 10;
            f = j / 1000 % 10;
            g = j / 100 % 10;
            h = j / 10 % 10;
            i = j % 10;
            set.clear();
            set.add(a);
            set.add(b);
            set.add(c);
            set.add(d);
            set.add(e);
            set.add(f);
            set.add(g);
            set.add(h);
            set.add(i);
            if (!set.contains(0)) {
                if (set.size() == 9) {
                    if (b % 2 == 0) {
                        if (e == 0 || e == 5) {
                            if ((a + b + c) % 3 == 0) {
                                if ((a * 1000 + b * 100 + c * 10 + d) % 4 == 0) {
                                    if ((a * 100000 + b * 10000 + c * 1000 + d * 100 + e * 10 + f) % 6 == 0) {
                                        if ((a * 1000000 + b * 100000 + c * 10000 + d * 1000 + e * 100 + f * 10 + g) % 7 == 0) {
                                            if ((a * 10000000 + b * 1000000 + c * 100000 + d * 10000 + e * 1000 + f * 100 + g * 10 + h) % 8 == 0) {
                                                result = a * 100000000 + b * 10000000 + c * 1000000 + d * 100000 + e * 10000 + f * 1000 + g * 100 + h * 10 + i;
                                                break;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        return result;
    }
}

from leetcode.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.