数值被颠倒。 例如:输入123456 则运行后654321
import java.util.Scanner; public class Test { public static void main(String[] args) { System.out.print("请输入一个正整数:"); Scanner sc = new Scanner(System.in); int a = sc.nextInt(); System.out.println(convert(a)); } public static String convert(int a) { String str=""; int temp =a; int i=0; do { temp= temp/10; i++; } while (temp!=0); for(int x=(i-1); x>=0;x--) { int num= (a/(int)(Math.pow(10, x)))%10; str=str+num; } str=str+'?'; for(int j=0; j<=(i-1);j++) { int num= (a/(int)(Math.pow(10, j)))%10; str=str+num; } return str; } }
编写判断回文数字的方法,并调用测试
import java.util.Scanner; public class Method09 { public static void main(String[] args) { long num= 0; Scanner sc = new Scanner(System.in); do { System.out.print("请输入一个正整数:"); num = sc.nextLong(); if(num<1) { System.out.println("您的输入有误!!!!!!!请重新输入!"); } } while (num<1); String str =""; str=isPalindromeNumber(num)? "是回文数":"不是回文数"; System.out.println(str); } public static boolean isPalindromeNumber(long num) { int i=0; long temp = num; String str=""; String str1=""; //判断是几位数 do { temp= temp/10; i++; } while (temp!=0); //如果是否是偶数位 if (i%2==0) { for(int j=0;j<(i/2);j++) { long sum = (num/(long)(Math.pow(10, j)))%10; //把整数的前半部分从前到后以String类的形式拼接 str=str+sum; } for(int j=(i-1);j>=(i/2);j--) { long sum = (num/(long)(Math.pow(10, j)))%10; //把整数的后半部分从后到前以String类的形式拼接 str1=str1+sum; } if (str.equals(str1)) { return true; } } //判断是否是奇数位 else if (i%2==1) { for(int j=0;j<(i/2);j++) { long sum = (num/(long)(Math.pow(10, j)))%10; //把整数的前半部分从前到后(不拼接整数中间那个数)以String类的形式拼接 str=str+sum; } for(int j=(i-1);j>(i/2);j--) { long sum = (num/(long)(Math.pow(10, j)))%10; //把整数的后半部分从后到前(不拼接整数中间那个数)以String类的形式拼接 str1=str1+sum; } if (str.equals(str1)) { return true; } } return false; } }
标签:10,String,int,18,08,num,str,2023,Scanner From: https://www.cnblogs.com/zhenaifen/p/17641707.html