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


本文来源于算法面试题特训专栏,这里有大量专业性的算法题比如(动态规划21天,大厂特训28天等等)
欢迎大家一起学习。

链接:传送门
在这里插入图片描述

目录标题

  • 导读
  • Java蓝桥集训
  • 面试题
  • 点击直接资料领取

导读

在这里插入图片描述

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

特别介绍

小白练手专栏,适合刚入手的新人以及考python二级的同学欢迎订阅编程小白进阶

python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章,可以让你快乐学python练手项目专栏

另外想学JavaWeb进厂的同学可以看看这个专栏:传送们

这是个冲刺大厂面试专栏还有算法比赛练习我们一起加油 上岸之路

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

点击直接资料领取

这里有python,Java学习资料还有有有趣好玩的编程项目,更有难寻的各种资源。反正看看也不亏。

你可能感兴趣的:(Java,java,面试,程序人生)