Project Euler #8: Largest product in a series

Sort by

recency

|

218 Discussions

|

  • + 0 comments

    Sliding window problem. You can bail on computing sub-products whenever you encounter a zero (in my case, that's when tmp becomes zero).

    int max_prod(string num, size_t n, int k) {
        int res = 0;
        size_t l = 0;
        size_t r;
            
        while (l < (n - k)) {
            r = l;
            int tmp = 1;
            while (tmp > 0 && r < l + k) {
                tmp *= (num[r] - '0');
                if ((r - l == (k - 1)) && tmp > res) {
                    res = tmp;
                }
                r++;
            }
            l++;
        }
        
        return res;
    }
    
  • + 0 comments

    Sliding window problem. You can bail on computing sub-products whenever you encounter a zero (in my case, that's when tmp becomes zero). int max_prod(string num, size_t n, int k) { int res = 0; size_t l = 0; size_t r;

    while (l < (n - k)) {
        r = l;
        int tmp = 1;
        while (tmp > 0 && r < l + k) {
            tmp *= (num[r] - '0');
            if ((r - l == (k - 1)) && tmp > res) {
                res = tmp;
            }
            r++;
        }
        l++;
    }
    
    return res;
    

    }

  • + 0 comments

    Sliding window problem. You can bail on computing sub-products whenever you encounter a zero (in my case, that's when tmp becomes zero).

    int max_prod(string num, size_t n, int k) { int res = 0; size_t l = 0; size_t r;

    while (l < (n - k)) {
        r = l;
        int tmp = 1;
        while (tmp > 0 && r < l + k) {
            tmp *= (num[r] - '0');
            if ((r - l == (k - 1)) && tmp > res) {
                res = tmp;
            }
            r++;
        }
        l++;
    }
    
    return res;
    

    }

  • + 0 comments

    Sliding window problem. You can bail on computing sub-products whenever you encounter a zero (in my case, that's when tmp becomes zero).

    int max_prod(string num, size_t n, int k) { int res = 0; size_t l = 0; size_t r;

    while (l < (n - k)) {
        r = l;
        int tmp = 1;
        while (tmp > 0 && r < l + k) {
            tmp *= (num[r] - '0');
            if ((r - l == (k - 1)) && tmp > res) {
                res = tmp;
            }
            r++;
        }
        l++;
    }
    
    return res;
    

    }

  • + 0 comments

    Sliding window problem. You can bail on computing sub-products whenever you encounter a zero...

    int max_prod(string num, size_t n, int k) { int res = 0; size_t l = 0; size_t r;

    while (l < (n - k)) {
        r = l;
        int tmp = 1;
        while (tmp > 0 && r < l + k) {
            tmp *= (num[r] - '0');
            if ((r - l == (k - 1)) && tmp > res) {
                res = tmp;
            }
            r++;
        }
        l++;
    }
    
    return res;
    

    }