前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode479. Largest Palindrome Product

leetcode479. Largest Palindrome Product

作者头像
眯眯眼的猫头鹰
发布2019-10-14 10:21:00
3140
发布2019-10-14 10:21:00
举报
文章被收录于专栏:眯眯眼猫头鹰的小树杈

题目要求

代码语言:javascript
复制
Find the largest palindrome made from the product of two n-digit numbers.

Since the result could be very large, you should return the largest palindrome mod 1337.

**Example:**

Input: 2

Output: 987

Explanation: 99 x 91 = 9009, 9009 % 1337 = 987

**Note:**

The range of n is \[1,8\].

函数传入整数n,要求计算出由n位数相乘得出的最大回数时多少。 比如n=2时,由两位数相乘得出的最大回数为9009=99*91,因为可能回数过长,超过int的范围,所以讲结果对1337求余后返回。

思路和代码

这里给出看到的一个解答,就是从大到小获取所有可以构成的回数,并且对n位数从大到小的取余。如果取余的值为0,则代表该回数是最大的回数。

代码语言:javascript
复制
    public int largestPalindrome(int n) {
        if(n == 1) return 9;
        int max = (int)Math.pow(10, n) - 1;
        for(int palindromePart = max - 1 ; palindromePart > max / 10 ; palindromePart--) {
            long palindrome = Long.valueOf(palindromePart + new StringBuilder().append(palindromePart).reverse().toString());
            for(long divided = max ; divided * divided >= palindrome ; divided--) {
                if(palindrome % divided == 0) {
                    return (int) (palindrome % 1337);
                }
            }
        }
        return 0;
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目要求
  • 思路和代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档