https://projecteuler.net/problem=4
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers.
思路 从上往下数,造回文数,(如999→999999,998→998899,等等),然后尝试用从上往下数的数字取余(前提是这个数的平方比目标数大,如999的平方是998001<999999所以不考虑),成功了就是这个最大回文数了。
long long getSum(int n)
{
int upper_bound = pow(10, n) - 1;//上限做成
int lower_bound = pow(10, n - 1);//下限做成
for (int i = upper_bound; i >= lower_bound; --i) {
string tmp = to_string(i);//转字符串 需要<string>
long long target_number = stol(tmp + string(tmp.rbegin(), tmp.rend()));//目标回文数做成
for (long j = upper_bound; j * j >= target_number; --j) {
if (target_number % j == 0)//可以除的尽就是了
return target_number;
}
}
return 9;//如果是一位数,直接会跳到这里
}