Java 中的逆序和加法函数


给定一个整数,我们的目标是反转该数字的数字,并将反转后的数字加到原始数字上,并检查结果数字是否为回文数,并重复此过程直到完成。该过程的断点是 1000 次迭代和大于最大长整数值 (Long.MAX_VALUE) 的值。

例如

输入 - 1678

输出 - 给定输入 1678 的回文数 293392

解释 - 首先反转输入数字,然后将其添加到原始数字中,然后检查它是否为回文数,如果它不是回文数,则对更新后的数字重复相同的过程。该过程的断点是 1000 次迭代和大于最大长整数值 (Long.MAX_VALUE) 的值。

输入 - 202021038

输出 - 给定输入 202021038 的回文数 1453553541

解释 - 首先反转输入数字,然后将其添加到原始数字中,然后检查它是否为回文数,如果它不是回文数,则对更新后的数字重复相同的过程。该过程的断点是 1000 次迭代和大于最大长整数值 (Long.MAX_VALUE) 的值。

下面程序中使用的方案如下

  • 在 main 函数内部

    • 输入数字传递给方法 calculateReverseandAdd(input)

  • 在方法 calculateReverseandAdd 内部

    • 引入一个新的变量 rev_number

    • 循环迭代的条件是 number <= max

    • 在循环内部,通过将数字传递给方法 reverseNumber() 获取数字的反转。

    • 然后将反转后的数字加到输入数字上。

    • 然后通过将数字传递给方法 checkPalindrome() 检查获得的数字是否为回文数,如果是,则将数字作为输出打印给用户。

    • 如果数字不是回文数,则使用获得的数字重复相同的过程,直到获得回文数,如果结果数字大于最大长整数值,则给定数字范围内不存在可能的回文数。

示例

import java.util.*;
public class ReverseAdd{
   static final long max = Long.MAX_VALUE;
   static long reverseNumber(long number){
      long rev_number = 0;
      while (number > 0){
         rev_number = rev_number * 10 + number % 10;
         number = number / 10;
      }
      return rev_number;
   }
   static boolean checkPalindrome(long number){
      return (reverseNumber(number) == number);
   }
   static void calculateReverseandAdd(long number){
      long rev_number = 0;
      System.out.println("Palindrome of the given input " + number);
      while (number <= max){
         rev_number = reverseNumber(number);
         number = number + rev_number;
         if (checkPalindrome(number)){
            System.out.println(number);
            break;
         }
         else if (number > max){
            System.out.println("No possible palindromes for the input");
         }
      }
   }
   public static void main(String[] args){
      calculateReverseandAdd(1678);
      calculateReverseandAdd(2961);
      calculateReverseandAdd(202021038);
   }
}

输出

如果我们运行以上代码,它将生成以下输出

Palindrome of the given input 1678
293392
Palindrome of the given input 2961
69696
Palindrome of the given input 202021038
1453553541

更新于: 2021年11月3日

588 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.