题目
编写一个Java应用程序。用户从键盘输入一个整数,程序将判断这个数是几位数并输出其位数,并判断这个数是否是回文数(是,则输出“是回文数”,否则输出“不是回文数”)。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。要求:定义两个方法,一个用于获取一个整数的位数,一个用于返回一个整数是否为回文数。
答案1(推荐)
import java.util.Scanner;
public class Main
{
static Scanner scan =new Scanner(System.in);
static int input1=scan.nextInt();
static String input=String.valueOf(input1);
public int number()
{
return input.length();
}
public static String digits()
{
StringBuffer sb=new StringBuffer(input);
sb.reverse();
String s=sb.toString();
System.out.println(s.length());
return s;
}
public static void main(String[] args)
{
if(digits().equals(input)==true)
System.out.println("是回文数");
else
System.out.println("不是回文数");
}
}
答案2(不推荐)
import java.util.Scanner;
public class Main
{
static Scanner scan=new Scanner(System.in);
static int num=scan.nextInt();
public static int Sum(int num)
{
int no=num;
int sum=0;
while(no!=0)
{
no/=10;
sum+=1;
}
//System.out.println(sum);
return sum;
}
public static boolean include()
{
int []a=new int[Sum(num)];
int no=num;
for(int i=0;i<Sum(num);i++)
{
a[i]=no%10;
no/=10;
}
for(int i=0;i<Sum(num)/2;i++)
{
if(a[i]==a[Sum(num)-i-1])
continue;
else
{