一、小王面试
第 1 题
问题描述
定义一个整型变量并赋任意五位正整数作为初始值,判断它是不是五位 回文数(五位回文数:个位与万位相同,十位与千位相同,例如:12321);
代码
import java.util.Scanner;
public class Test_1 {
public static void main(String[] args) {
System.out.println("请输入任意五位整数:");
Scanner scr = new Scanner(System.in);
int a = scr.nextInt();
/*//方法一:计算出五位数的具体所在位数的数值
int b = a / 10000;//万位
int c = a / 1000 % 10;//千位
int d = a / 100 % 10;//百位
int e = a / 10 % 10;//十位
int f = a % 10;//个位
//判断个位与万位是否相同,十位与千位是否相同,进而判断出是否为回文数
if(b == f && c == e) {
System.out.println("整数:" + a + "是回文数");
}else {
System.out.println("整数:" + a + "不是回文数");
}*/
//方法二:
//将整型类型转化为字符串 然后再为字符数组
String str = String.valueOf(a);//将a通过String里的valueOf方法把其转化为字符串
//将字符串转换为数组来求解
/*char[] array = str.toCharArray();//再通过toCharArray转化为字符数组
boolean f = false;//用于判断标志
//利用数组下标判断是否满足回文数
for(int i = 0; i < array.length / 2; i ++) {
if(array[i] == array[array.length - 1 - i]) {
f = true;
}else {
f = false;
break;
}
}*/
//直接用字符串来求解
boolean f = false;
for(int i = 0; i < str.length() / 2; i ++) {
if(str.charAt(i) != str.charAt(str.length() - 1 - i)) {
f = false;
}else {
f = true;
break;
}
}
if(f) {
System.out.println("整数:" + a + "是回文数");
}else System.out.println("整数:" + a + "不是回文数");
}
}
运行结果:
关键技术
- String.valueOf():将基本数据类型转化为字符串类型;
- charAt():返回指定索引处的char值;
第 2 题
问题描述
定义一个整型变量并赋任意五位正整数作为初始值,输出各位数字之和 (例如:12345 各位之和是:1+2+3+4+5 ,也就是 15)
代码
public class Test_2 {
public static void main(String[] args) {
Scanner scr = new Scanner(System.in);
System.out.println("请输入任意五位整数:");
int a = scr.nextInt();
/*方法一:计算出五位数的具体所在位数的数值
int b = a / 10000;//万位
int c = a % 10000 / 1000;//千位
int d = a % 10000 % 1000 / 100;//百位
int e = a % 10000 % 1000 % 100 / 10;//十位
int f = a % 10000 % 1000 % 100 % 10;//个位
int sum = b + c + d + e + f;
System.out.println("整数:" + a + "的各位之和为" + sum);*/
System.out.print("整数:" + a);
//方法二:采用循环语句的while循环
int sum = 0;
while(a != 0) {
sum = sum + a % 10;
a = a / 10;
}
System.out.println("的各位之和为" + sum);
}
}
运行结果:
第 3 题
问题描述
定义整型变量 a、b,写出将 a、b 两个变量值进行互换的程序 (要求不能使用第三个变量)
代码
public class Test_3 {
public static void main(String[] args) {
int a = 10;
int b = 20;
//通过数学运算,将两个变量的和存放到a中
a = a + b;
//将其赋值给b
b = a - b;
//将其赋值给a
a = a - b;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
运行结果: