java - Java程序在给定范围内查找回文数
问题描述
我正在尝试在给定范围内查找回文数。这是我的代码:
import java.util.Scanner;
import java.util.ArrayList;
public class PalindromeNums{
public static void main(String [] args){
Scanner input = new Scanner(System.in);
int start,end,rem,rev=0,temp;
ArrayList <Integer> palindrome = new ArrayList<>();
System.out.print("Start : ");
start = input.nextInt();
System.out.print("End : ");
end = input.nextInt();
temp = start;
for(int i = start; i <= end; i++){
while(temp != 0){
rem = temp % 10;
rev = rev * 10 + rem;
temp = temp / 10;
}
System.out.println(rev);
if(i == rev){
palindrome.add(i);
}
temp++;
rev = 0;
}
System.out.println(palindrome);
}
}
当我运行代码时,它只为第一个整数提供正确的输出。它不适用于给定范围内的其他整数。对此问题有任何建议/解决方案吗?为什么它不起作用?
样本输出:
开始:33 结束:55 33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 [33]
解决方案
请试试这个
import java.util.Scanner;
import java.util.ArrayList;
public class PalindromeNums{
public static void main(String [] args){
Scanner input = new Scanner(System.in);
int start,end,rem,rev=0,temp;
ArrayList <Integer> palindrome = new ArrayList<>();
System.out.print("Start : ");
start = input.nextInt();
System.out.print("End : ");
end = input.nextInt();
// Picking Each Number Of That Range;
for(int i = start; i <= end; i++){
temp =i;
// Checking whether Its Palindrome Or Not
while(temp != 0){
rem = temp % 10;
rev = rev * 10 + rem;
temp = temp / 10;
}
System.out.println(rev);
if(i == rev){
palindrome.add(i);
}
rev = 0;
}
System.out.println(palindrome);
}
}
推荐阅读
- excel - 图表数据系列格式不正确
- react-native - 如何在本机反应中创建表格
- r - 截断和合并两个字符向量中的值
- c# - 读取流直到行到达某个字符
- java - 流口水并通过 xpath 获取文本
- php - 如何扩展jwt时间?Jwt 版本:“tymon/jwt-auth”:“^1.0.0-rc.2”Laravel 5.7
- javascript - 如何在 ReactJS 中关闭当前浏览器选项卡?
- java - 用一次性代码交换刷新令牌时的 Google OAuth redirect_uri_mismatch
- rx-java - CompositeDisposable.dispose() 导致 NPE
- php - 使用简码在侧边栏中获取 Woocommerce 自定义分类法