01 Java基础语法—第3节基础语法

一、小王面试

第 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);
	}
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46312449/article/details/112407799