当前位置: 首页 > 面试题库 >

如何找出所有回文数

华宣
2023-03-14
问题内容

甲回文数或数字回文是像16461是“对称的”数量,即保持相同时,其数字是相反的。

回文一词源自回文,回文是指像转子这样的词,在其字母反转后保持不变。

第一个回文数(十进制)为:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22,
33, 44, 55, 66, 77, 88, 99, 101, 111,
121, 131, 141, 151, 161, 171, 181,
191, ...

如何找出以下所有回文数,例如10000?


问题答案:

生成所有回文数达到特定限制。

public static Set<Integer> allPalindromic(int limit) {

    Set<Integer> result = new HashSet<Integer>();

    for (int i = 0; i <= 9 && i <= limit; i++)
        result.add(i);

    boolean cont = true;
    for (int i = 1; cont; i++) {
        StringBuffer rev = new StringBuffer("" + i).reverse();
        cont = false;
        for (String d : ",0,1,2,3,4,5,6,7,8,9".split(",")) {
            int n = Integer.parseInt("" + i + d + rev);
            if (n <= limit) {
                cont = true;
                result.add(n);
            }
        }
    }

    return result;
}

回文测试

使用字符串

public static boolean isPalindromic(String s, int i, int j) {
    return j - i < 1 || s.charAt(i) == s.charAt(j) && isPalindromic(s,i+1,j-1);
}

public static boolean isPalindromic(int i) {
    String s = "" + i;
    return isPalindromic(s, 0, s.length() - 1);
}

使用整数

public static boolean isPalindromic(int i) {
    int len = (int) Math.ceil(Math.log10(i+1));
    for (int n = 0; n < len / 2; n++)
        if ((i / (int) Math.pow(10, n)) % 10 !=
            (i / (int) Math.pow(10, len - n - 1)) % 10)
            return false;
    return true;
}


 类似资料:
  • 问题内容: Python具有和获取字符串中子字符串的索引。 我想知道是否有类似的东西可以返回所有找到的索引(不仅是开头的第一个,还是结尾的第一个)。 例如: 问题答案: 没有简单的内置字符串函数可以满足你的需求,但是你可以使用功能更强大的正则表达式: 如果要查找重叠的匹配项,先行搜索将做到: 如果你想要一个没有重叠的反向查找全部,则可以将正向和负向超前组合成这样的表达式: 返回一个,因此你可以更改

  • 问题内容: 我有一个.DRL文件,其中有10条规则。插入事实后,可能会匹配一些规则-如何找出以编程方式匹配的规则? 问题答案: 请注意,此答案对不超过5.x的Drools版本有效。 如果您已升至6或更高,请查看@ melchoir55的修改后答案。我还没有亲自测试过,但是我相信它会起作用。 若要跟踪规则激活,可以使用AgendaEventListener。下面是一个示例,可在此处找到: https

  • 我需要从远程位置读取所有文件并将它们发送到另一个服务,如果成功发送,则删除所有文件。我的代码对于单个文件工作正常,但如果我想在循环中读取所有文件,那么代码不会被执行。 请按以下方式查找代码。在RemoteFileReadImpl类中,我试图读取循环中不起作用的文件。在WebClientUtil类中,我将文件发送到另一个服务。返回成功响应后,我想重命名已读取的文件。

  • 我有一个。DRL文件,其中包含10条规则。一旦我插入一个事实,一些规则可能会匹配-我如何找出哪些规则是以编程方式匹配的?

  • 问题内容: 如何在Python中列出目录的所有文件并将其添加到中list? 问题答案: 使用Python 2和3获取文件列表 os.listdir() 如何获取当前目录中的所有文件(和目录)(Python 3) 以下是在Python 3中使用 和函数仅检索当前目录中文件的简单方法。进一步的探索将演示如何返回目录中的文件夹,但你不会在子目录中拥有该文件,因此可以使用步行-稍后讨论)。 glob 我发

  • 问题内容: 我试图在JavaScript数组中找到元素的所有实例的索引,例如“ Nano”。 我尝试了jQuery.inArray或类似的.indexOf(),但是它只给出了元素的最后一个实例的索引,在这种情况下为5。 如何获得所有实例的信息? 问题答案: 该方法有一个可选的第二个参数,用于指定从其开始搜索的索引,因此您可以在循环中调用它以查找特定值的所有实例: 您并没有真正弄清楚如何使用索引,因

  • 问题内容: 在我正在研究的基于Linux的项目中,我需要能够找到我的所有子进程。每次启动时都进行记录是不可行的-需要在事实之后找到它们。这必须是纯C语言,而我想不读取/ proc就这样做。有谁知道如何做到这一点? 问题答案: 我发现您的评论认为,将进程的创建记录为奇数是不可行的,但是如果您真的做不到(可能是因为您不知道将创建多少个进程,并且不想保留内存) ),那么我可能会打开所有与该glob匹配的

  • 问题内容: 在我的Java应用程序中,我将文件重命名为String参数中提供的文件名。有一种方法 它基本上检查newName是否尚未被其他文件占用,因为我不想掩埋现有文件。 现在我想到,也许newName String不会表示有效的文件名。所以我想将此检查添加到方法中: 这显然不是正确的方法,因为在大多数情况下newFile尚不存在,因此尽管它 是 OKtoRename,但该函数返回false。