Find the largest palindrome made from the product of two 3-digit numbers - Javascript

前端 未结 21 1489
感情败类
感情败类 2020-12-28 17:16

Can anyone tell me what\'s wrong with the code. Find the largest palindrome made from the product of two 3-digit numbers.

function largestPalind         


        
21条回答
  •  灰色年华
    2020-12-28 17:44

    I believe this should be optimal

    #include 
    #include 
    #include 
    using namespace std;
    template 
    bool IsPalindrome(const T num) {
        T reverse = 0;
        T n = num;
        while (n > 0) {
            reverse = (reverse * 10) + n % 10;
            n /= 10;
        }
        return reverse == num;
    }
    
    
    template 
    T LongestPalindromeFromProductOfNDigitNums(int n) {
        T result = 0, val = 0, max_n_digit_num = std::pow(10, n)-1,
        least_n_digit_num = std::pow(10, n-1);
        int n_checks = 0;
        for (T i = max_n_digit_num; i >= least_n_digit_num; --i) {
            if ((i*i) < result) {//found the highest palindrome
                break;
            }
            for (T j = i; j >= least_n_digit_num; --j) {
                val = i*j;
                ++n_checks;
                if (val < result) // any product i*j for the value of 'j' after this will be less than result
                    break;
                if (IsPalindrome(val)) {
                    if (val > result)
                        result = val;
                    break;  // whenever a palindrome is found break since we only need highest one
                }
            }
        }
        std::cout << " Total num of checks = " << n_checks << std::endl;
        return result;
    }
    
    int main() {
        int n = 3;
        std::cout << " LongestPalindromeFromProductOfNDigitNums for n = "
        << n << " is " << LongestPalindromeFromProductOfNDigitNums(n) << std::endl;
        n = 4;
        std::cout << " LongestPalindromeFromProductOfNDigitNums for n = "
        << n << " is " << LongestPalindromeFromProductOfNDigitNums(n) << std::endl;
        return 0;
    }
    

    http://ideone.com/WoNSJP

提交回复
热议问题