java - 递归得到n的回文

标签 java recursion

用户输入 n,递归方法返回 n 的回文。

例如:

  • 对于 n = 3 方法打印:3
  • 对于 n = 13 方法打印:1331
  • 对于 n = 133 方法打印:133331

基本上,方法反转n,然后将其添加到原始n

我知道如何打印反转的 n,但我在保存反转的数字时遇到了问题。我如何升级下面的代码以返回 n+reversed n(1331)?

public class test {
    public static void palindrome(int n) {
        if (n < 10) {
            System.out.print(n);
            return;
        }
        else {
            System.out.print(n % 10);
            palindrom(n/10);
        }
    }

    public static void main(String[] args) {
        palindrome(13);
    }
}

最佳答案

以下代码可以解决您的问题:

public static void main(String args[]){
    System.out.println(palindrome(133));
}

private static int palindrome (int n){
     return palindrome(n,n);
}

private static int palindrome( int n, int r ){
    if(r==0)
        return n;
    return palindrome(n*10+r%10,r/10);
}

可以看看here .

关于java - 递归得到n的回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50425175/

相关文章:

java - 递归:扫描数字中数字的频率:redux

java - 在 Java 中通过 Pop3 读取 Outlook 365 的收件箱时遇到错误

java - 为什么 BigInteger 不是原始类型

java - 如何开始使用 Oracle 的 Nashorn JS 引擎进行编码,它何时会取代 OpenJDK 中的 Rhino?

python - Python 中数组的递归问题

javascript - javascript中递归的结果存储在哪里?

java - 动态简单文本编辑器 Java

java - IntelliJ。调试一个程序,即使它没有编译

Javascript - 为什么下面的函数定义出错?

java - 需要帮助修复此代码的动态编程/递归使用 Java 计算最小硬币