479. 最大回文数乘积
2022/4/17 6:21:48
本文主要是介绍479. 最大回文数乘积,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
479. 最大回文数乘积 - 力扣(LeetCode) (leetcode-cn.com)
给定一个整数 n ,返回 可表示为两个 n 位整数乘积的 最大回文整数 。因为答案可能非常大,所以返回它对 1337 取余 。
示例 1:
输入:n = 2
输出:987
解释:99 x 91 = 9009, 9009 % 1337 = 987
示例 2:
输入: n = 1
输出: 9
提示:
- 1 <= n <= 8
要点:
- 要知道什么事回文数。leetcode有很多关于回文数或者回文字符串的题,做一个就知道了
- 回文数就是从前往后 和 从后往前看,结果都是一样的
构造回文数
给你个 n ,返回 两个 n 位整数所有的回文数
long a = (long) (Math.pow(10, n) - 1); // 从大到小构造回文数 for (long i = a; i >= 0 ; i--) { long num = i; for (long j = i; j > 0 ; j /= 10) { num = num * 10 + j % 10; } System.out.println(num); }
最终答案
public int largestPalindrome(int n) { if (n == 1) { return 9; } long a = (long) (Math.pow(10, n) - 1); for (long i = a; i >= 0; i--) { //从大到小构造回文串 long number = i; for (long j = i; j > 0; j /= 10) { number = number * 10 + j % 10; } //判断number是否为满足条件的最大回文串 //每次循环都从最大n位开始判断,循环判断条件为 k*k >= number //为什么k*k小于number就不用判断了,因为如果k*k小于number依旧存在number%k == 0,说明绝对出现了一个 //(大于k的数)*(一个小于k的)等于该number,而在(大于k的数)*(大于k的数)> number时就满足条件(number%(大于k的数)== 0 return掉了),所以k*k小于number了就一定不存在number % k ==0; for (long k = a; k * k >= number; k--) { if (number % k == 0) { return (int) (number % 1337); } } } return -1; }
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/largest-palindrome-product
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
这篇关于479. 最大回文数乘积的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南