热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何取前10040道JAVA经典算法面试题(答案)

本文主要分享【如何取前100】,技术文章【40道JAVA经典算法面试题(答案)】为【web15286201346】投稿,如果你遇到面试,学习路线,阿里巴巴相关问题,本文相关知识或能到你。如何取前10

本文主要分享【如何取前100】,技术文章【40道JAVA经典算法面试题(答案)】为【web15286201346】投稿,如果你遇到面试,学习路线,阿里巴巴相关问题,本文相关知识或能到你。

如何取前100

现在是3月份,也是每年开年企业公司招聘的高峰期,同时有许多的朋友也出来找工作。现在的招聘他们有时会给你出一套面试题或者智力测试题,也有的直接让你上机操作,写一段程序。算法的计算不乏出现,基于这个原因我自己搜集了一些算法上的题型。希望对于大家有所帮助。

【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21….

public class exp2{
	public static void main(String args[]){
		int i=0;
		for(i=1;i<=20;i++)
			System.out.println(f(i));
	}
	public static int f(int x)
	{
		if(x==1 || x==2)
			return 1;
		else
			return f(x-1)+f(x-2);
	}
}
或
public class exp2{
	public static void main(String args[]){
		int i=0;
		math mymath = new math();
		for(i=1;i<=20;i++)
			System.out.println(mymath.f(i));
	}

}
class math
{
	public int f(int x)
	{
		if(x==1 || x==2)
			return 1;
		else
			return f(x-1)+f(x-2);
	}
}

【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,

则表明此数不是素数,反之是素数。

public class exp2{
	public static void main(String args[]){
		int i=0;
		math mymath = new math();
		for(i=2;i<=200;i++)
			if(mymath.iszhishu(i)==true)
			System.out.println(i);
	}
}
class math
{
	public int f(int x)
	{
		if(x==1 || x==2)
			return 1;
		else
			return f(x-1)+f(x-2);
	}
	public boolean iszhishu(int x)
	{
		for(int i=2;i<=x/2;i++)
			if (x % 2==0 )
				return false;
		return true;
	}
}

【程序3】 题目:打印出所有的 “水仙花数 “,所谓 “水仙花数 “是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 “水仙花数 “,因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

public class exp2{

    public static void main(String args[]){

       int i=0;

       math mymath = new math();

       for(i=100;i<=999;i++)

           if(mymath.shuixianhua(i)==true)

           System.out.println(i);

    }

}

class math

{

    public int f(int x)

    {

       if(x==1 || x==2)

           return 1;

       else

           return f(x-1)+f(x-2);

    }

    public boolean iszhishu(int x)

    {

       for(int i=2;i<=x/2;i++)

           if (x % 2==0 )

              return false;

       return true;

    }

    public boolean shuixianhua(int x)

    {

       int i=0,j=0,k=0;

       i=x / 100;

       j=(x % 100) /10;

       k=x % 10;

       if(x==i*i*i+j*j*j+k*k*k)

          return true;

       else

          return false;

      

    }

}

【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

public class exp2{
	public exp2(){}
    public void fengjie(int n){
        for(int i=2;i<=n/2;i++){
            if(n%i==0){
                System.out.print(i+"*");
                fengjie(n/i);
                }
        }
        System.out.print(n);
        System.exit(0);///不能少这句,否则结果会出错
        }
        public static void main(String[] args){
             String str="";
             exp2 c=new exp2();
             str=javax.swing.JOptionPane.showInputDialog("请输入N的值(输入exit退出):");
             int N;
             N=0;
             try{
                     N=Integer.parseInt(str);
                     }catch(NumberFormatException e){
                         e.printStackTrace();
                         }
            System.out.print(N+"分解质因数:"+N+"=");
            c.fengjie(N);
        }    
}

【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

1.程序分析:(a> b)a:b这是条件运算符的基本例子。

import javax.swing.*;

public class ex5 {

        public static void main(String[] args){

             String str="";

             str=JOptionPane.showInputDialog("请输入N的值(输入exit退出):");

             int N;

             N=0;

             try{

                N=Integer.parseInt(str);

              }

             catch(NumberFormatException e){

                e.printStackTrace();

               }

             str=(N>90?"A":(N>60?"B":"C"));

             System.out.println(str);

        }   

}

【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:利用辗除法。

最大公约数:
public class CommonDivisor{
    public static void main(String args[])
    {
        commonDivisor(24,32);
    }
    static int commonDivisor(int M, int N)
    {
        if(N<0||M<0)
        {
            System.out.println("ERROR!");
            return -1;
        }
        if(N==0)
        {
            System.out.println("the biggest common divisor is :"+M);
            return M;
        }
        return commonDivisor(N,M%N);
    }
}
最小公倍数和最大公约数:
import java.util.Scanner; 
public class CandC 
{ 
//下面的方法是求出最大公约数
public static int gcd(int m, int n) 
{ 
while (true) 
{ 
if ((m = m % n) == 0) 
return n; 
if ((n = n % m) == 0) 
return m; 
} 
} 
public static void main(String args[]) throws Exception 
{ 
//取得输入值
//Scanner chin = new Scanner(System.in); 
//int a = chin.nextInt(), b = chin.nextInt(); 
int a=23; int b=32;
int c = gcd(a, b); 
System.out.println("最小公倍数:" + a * b / c + "
最大公约数:" + c); 
} 
}

【程序7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

1.程序分析:利用while语句,条件为输入的字符不为 ‘ ‘.

import java.util.Scanner;
public class ex7 {
	 public static void main(String args[])
	 {
	  System.out.println("请输入字符串:");
	  Scanner scan=new Scanner(System.in);
	  String str=scan.next();
	  String E1="[一-龥]";
	  String E2="[a-zA-Z]";
	  int countH=0;
	  int countE=0;
	  char[] arrChar=str.toCharArray();
	  String[] arrStr=new String[arrChar.length];
	  for (int i=0;i
  

【程序8】 题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

1.程序分析:关键是计算出每一项的值。

import java.io.*;
public class Sumloop {
  public static void main(String[] args) throws IOException
  {
	  int s=0;
	  String output="";
	  BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
	  System.out.println("请输入a的值");
	  String input =stadin.readLine();
	  for(int i =1;i<=Integer.parseInt(input);i++)
	  {
		  output+=input;
		  int a=Integer.parseInt(output);
		  s+=a;
	  }
	  System.out.println(s);
  }
}
另解:
import java.io.*;
public class Sumloop {
  public static void main(String[] args) throws IOException
  {
	  int s=0;
	  int n;
	  int t=0;
	  BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
	  String input = stadin.readLine();
	  n=Integer.parseInt(input);
	  for(int i=1;i<=n;i++){
	   t=t*10+n;
	   s=s+t;
	   System.out.println(t);
	  }
	  System.out.println(s);
	 }
} 

【程序9】 题目:一个数如果恰好等于它的因子之和,这个数就称为 “完数 “。例如6=1+2+3.编程 找出1000以内的所有完数。

public class Wanshu {
 public static void main(String[] args)
 {
	 int s;
	 for(int i=1;i<=1000;i++)
	 {
		 s=0;
		 for(int j=1;j
   

【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

public class Ex10 {
 public static void main(String[] args)
 {
	 double s=0;
	 double t=100;
	 for(int i=1;i<=10;i++)
	 {
         s+=t;
         t=t/2;
	 }
	 System.out.println(s);
	 System.out.println(t);
	 
 }
}

总结

为帮助开发者们提升面试技能、有机会入职BATJ等大厂公司,特别制作了这个专辑——这一次整体放出。

所有的面试题目都不是一成不变的,特别是像一线大厂,上面的面试题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。最后给大家分享Spring系列学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程 笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册一共整理了1184页PDF文档。

大致内容包括了: Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈!

需要的私信博主(555)领取,祝大家更上一层楼!!!

本文《40道JAVA经典算法面试题(答案)》版权归web15286201346所有,引用40道JAVA经典算法面试题(答案)需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
author-avatar
RAL-1314921
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有