Java 中的反转和添加函数
我们得到一个整数,这里的议程是反转数字的数字并将反转后的数字添加到原始数字上,并检查结果数字是否为回文,并重复该过程直到它出现。该过程的断点是1000次迭代和一个大于最大long值(Long.MAX_VALUE)的值。
举些例子
输入 -1678
输出 -给定输入的回文1678293392
说明-首先反转输入数字,然后将其添加到原始数字,然后检查回文如果它不是回文,则对更新的数字重复相同的过程。该过程的断点是1000次迭代和一个大于最大long值(Long.MAX_VALUE)的值。
输入 −202021038
输出 -给定输入的回文2020210381453553541
说明-首先反转输入数字,然后将其添加到原始数字,然后检查回文如果它不是回文,则对更新的数字重复相同的过程。该过程的断点是1000次迭代和一个大于最大long值(Long.MAX_VALUE)的值。
下面程序中使用的方法如下
主函数内部
输入数字在方法中传递calculateReverseandAdd(input)
在方法calculateReverseandAdd中
引入了一个新变量rev_number
使用条件数<=max迭代循环
在循环内部,通过方法传递数字得到数字的反转reverseNumber()
然后将反转的数字添加到输入数字中
然后通过在方法中传递数字来检查获得的数字是否为回文checkPalindrome(),如果是,则将数字作为输出打印给用户。
如果数字不是回文,则对获得的数字重复相同的过程,直到获得回文,如果结果数字大于最大long值,则在给定数字的范围内不存在可能的回文。
示例
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("给定输入的回文 " + 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); } }输出结果
如果我们运行上面的代码,它将生成以下输出
给定输入的回文 1678 293392 给定输入的回文 2961 69696 给定输入的回文 202021038 1453553541