Largest palindrome product

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;//如果是一位数,直接会跳到这里
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值