蓝桥集训(附加面试题)第二天

140 阅读2分钟

「这是我参与2022首次更文挑战的第33天,活动详情查看:2022首次更文挑战」。

导读

在这里插入图片描述

在刚刚结束的 每日算法&面试题,大厂特训二十八天冲刺大厂每日算法&面试题,动态规划21天 的训练中我们一起打卡走了过来。但是学习不能停呀,从今天开始我们开始Java集训(算法&&面试题)第一天接着卷起来。

Java蓝桥集训

问题描述   123321是一个非常特殊的数,它从左边读和从右边读是一样的。   输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。 输入格式   输入一行,包含一个正整数n。 输出格式   按从小到大的顺序输出满足条件的整数,每个整数占一行。

样例输入
52
样例输出
899998
989989
998899

解一:


import java.util.Scanner;

public class Main {
	
	public static int panduan(int i) {
		int temp=(String.valueOf(i).length());
		int temp2=temp/2,flag=0;
		String s=String.valueOf(i);
		for(int j=0;j<temp2;j++) {
			if(s.charAt(j)!=s.charAt(temp-1-j)) {
				flag=1;
				break;
			}
		}
		if(flag==0) {
			int w=i,sumn=0;
			for(int q=0;q<temp;q++) {
				sumn=sumn+w%10;
				w=(int)(w/10);
			}
			return sumn;
		}
		return 0;
	}
	
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		sc.close();
		for(int i=10000;i<999999;i++) {
			if(panduan(i)==n)System.out.println(i);
		}
	}
}

解二:

import java.util.Scanner;

public class Main {
	
	@SuppressWarnings("deprecation")
	public  static void main(String []args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		sc.close();
		for(int i=10000;i<=999999;i++) {
			//判断是不是回文数
			StringBuilder  aa= new StringBuilder(i+"");
			int sum=0;
			if(aa.toString().equals(aa.reverse().toString())) {

				//是,则判断各位数加起来是否等于n
				for(int k=0;k<aa.toString().length();k++) {
				
					sum += new Integer(aa.charAt(k)-48);
				}
			}
			//正确则输出
			if(sum==n) {
				System.out.println(i);
			}
		}	


	}
}

问题描述   153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。

输出格式   按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。

public class Main{
	
	public static void main(String []args) {
		for(int i=100;i<=999;i++) {
			String temp=String.valueOf(i);
			int a=temp.charAt(0)-48;
			int b=temp.charAt(1)-48;
			int c=temp.charAt(2)-48;
			if((int)(Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c,3))==i) {
				System.out.println(i);
			}
		}
	}
}

面试题

Java 中实现多态的机制是什么?
多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编译时
不确定,在运行期间才确定,一个引用变量到底会指向哪个类的实例。这样就可以不用 修改
源程序,就可以让引用变量绑定到各种不同的类实现上。Java 实现多态有三个必要条件:
继承、重定、向上转型,在多态中需要将子类的引用赋值给父类对象,只有这样该引用才能
够具备调用父类方法和子类的方法



如何将一个 Java 对象序列化到文件里?
ObjectOutputStream.writeObject()负责将指定的流写入,ObjectInputStream.readObject()
从指 定流读取序列化数据。
//写 入
try {
ObjectOutputStream os = new ObjectOutputStream(new
FileOutputStream("D:/student.txt"));
os.writeObject(studentList);
os.close();
} catch (FileNotFoundExceptione) {
e.printStackTrace();
} catch (IOExceptione) {
e.printStackTrace();
}