2024年最全50道JAVA基础算法编程题【内含分析、程序答案】【建议收藏】,互联网大厂100道大数据开发面试题助你冲关金三银四

本文提供50道JAVA基础算法编程题目,包括递归、排序、数学逻辑等,适合不同经验层次的学习者。同时,文章涵盖互联网大厂的大数据面试题,助力求职者备考。资料全面,包含学习资源、面试经验、实战项目等。
摘要由CSDN通过智能技术生成

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

public class Prog19{

    public static void main(String[] args){

        int n = 5;

        printStar(n);

    }

    //打印星星

    private static void printStar(int n){

        //打印上半部分

        for(int i=0;i<n;i++){

            for(int j=0;j<2*n;j++){

            if(j<n-i)

              System.out.print(" ");

            if(j>=n-i && j<=n+i)

              System.out.print("*");

          }

          System.out.println();

        }

        //打印下半部分

        for(int i=1;i<n;i++){

            System.out.print(" ");

            for(int j=0;j<2*n-i;j++){

                if(j<i)

              System.out.print(" ");

            if(j>=i && j<2*n-i-1)

              System.out.print("*");

            }

            System.out.println();

        }

    }

}

【程序20】

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

程序分析:请抓住分子与分母的变化规律。

public class Prog20{

    public static void main(String[] args){

        double n1 = 1;

        double n2 = 1;

        double fraction = n1/n2;

        double Sn = 0;

        for(int i=0;i<20;i++){

          double t1 = n1;

          double t2 = n2;

          n1 = t1+t2;

          n2 = t1;

          fraction = n1/n2;

          Sn += fraction;

        }

        System.out.print(Sn);

    }

}

【程序21】

题目:求1+2!+3!+…+20!的和

程序分析:此程序只是把累加变成了累乘。

public class Prog21{

    public static void main(String[] args){

        long sum = 0;

        for(int i=0;i<20;i++)

          sum += factorial(i+1);

        System.out.println(sum);

    }

    //阶乘

    private static long factorial(int n){

        int mult = 1;

        for(int i=1;i<n+1;i++)

          mult *= i;

        return mult;

    }

}

【程序22】

题目:利用递归方法求5!。

程序分析:递归公式:fn=fn_1*4!

public class Prog22{

    public static void main(String[] args){

        System.out.println(fact(10));

    }

    //递归求阶乘

    private static long fact(int n){

        if(n==1)

          return 1;

        else

          return fact(n-1)*n;

    }

}

【程序23】

题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

public class Prog23{

    public static void main(String[] args){

        System.out.println(getAge(5,2));

    }

    //求第m位同志的年龄

    private static int getAge(int m,int n){

        if(m==1)

          return 10;

        else

          return getAge(m-1,n)+n;      

    }

}

【程序24】

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

public class Prog24{

    public static void main(String[] args){

        int n = Integer.parseInt(args[0]);

        int i = 0;

        int[] a = new int[5];

        do{

            a[i] = n%10;

          n /= 10;

          ++i;

        }while(n!=0);

        System.out.print("这是一个"+i+"位数,从个位起,各位数字依次为:");

        for(int j=0;j<i;j++)

          System.out.print(a[j]+" ");

    }

}

【程序25】

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

import java.io.*;

public class Prog25{

    public static void main(String[] args){

        int n = 0;

        System.out.print("请输入一个5位数:");

        BufferedReader bufin = new BufferedReader(new InputStreamReader(System.in));

        try{

          n = Integer.parseInt(bufin.readLine());

        }catch(IOException e){

            e.printStackTrace();

        }finally{

            try{

              bufin.close();

            }catch(IOException e){

                e.printStackTrace();

            }

        }

        palin(n);

    }

    private static void palin(int n){

        int m = n;

        int[] a = new int[5];

        if(n<10000 || n>99999){

            System.out.println("输入的不是5位数!");

            return;

        }else{

          for(int i=0;i<5;i++){

              a[i] = n%10;

              n /= 10;

          }

          if(a[0]==a[4] && a[1]==a[3])

            System.out.println(m+"是一个回文数");

          else

            System.out.println(m+"不是回文数");

        }

   }

}

【程序26】

题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。

程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。

import java.io.*;

public class Prog26{

    public static void main(String[] args){

        String str = new String();

      BufferedReader bufIn = new BufferedReader(new InputStreamReader(System.in));

      System.out.print("请输入星期的英文单词前两至四个字母):");

      try{

          str = bufIn.readLine();

      }catch(IOException e){

          e.printStackTrace();

      }finally{

          try{

              bufIn.close();

          }catch(IOException e){

              e.printStackTrace();

          }

      }

      week(str);

    }

    private static void week(String str){

        int n = -1;

        if(str.trim().equal
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java语言程序设计课后答案 作业参考答案 习题一 4、如何建立和运行Java程序, 首先启动文本编辑器,如记事本、UltraEdit等,编辑程序代码,并以.Java作为文件 扩展名保存程序源代码;然后进入dos环境利用javac编译源程序,生成扩展名为.class的 字节码文件;再利用命令java运行字节码文件,得到程序的运行结果。在集成开发环境J builder、Eclipse下,可以完成程序的编辑、编译、调试及运行等所有任务。 5、 public class LikeJava { public static void main(String [] args) { System.out.println("I Like Java Very much!"); } } 习题二 5、 (1) 45 (2) false (3) 14 (4) 14 (5),6 (6) true (7) 12 9、 public class Volume { public static void main(String [] args) { double r=0,v=0; r=double.parseDouble(args[0]); v=4*3.14159/3*r*r*r; System.out.println("球体积为:"+v); } } 习题三 8、 public class Factorials { public static void main(String args[]) { int i, j; long s=0, k; i=1; do //外循环开始 { k = 1; j=1; do{//内循环开始 k = k * j; //内循环体 j++; }while(j<=i);//内循环结束 System.out.println(i + "!=" + k); s = s + k; i++; }while(i<=20); //外循环结束 System.out.println("Total sum=" + s); } } 10、 public class Num { public static void main(String[]args) { int i,j,k,n; for (n=100;n<1000;n++) { i=n/100; j=(n-i*100)/10; k=n%10; if (i*i*i+j*j*j+k*k*k==n) System.out.print(n+" "); } } } 习题四 5、 import java.util.Scanner; class Factor{ long fac(int m) {if(m==0""m==1)return 1; else return m*fac(m-1); } public static void main(String [] args) {int i,n; long sum=0; String s=""; Scanner input=new Scanner(System.in); System.out.print("Please input n: "); n=input.nextInt(); Factor f=new Factor(); for(i=1;i<=n;i++) { System.out.println(f.fac(i)); sum=sum+f.fac(i); s=s+i+"!+"; } System.out.println(s.substring(0,s.length()-1)+"="+sum); } } 习题五 2、 import java.io.*; public class YangHuiOk { public static void main (String args[]) throws IOException { int max,a[][],i,j; char x; System.out.print("请输入杨辉三角要显示的行数: "); x=(char)System.in.read(); max = Integer.parseInt(String.valueOf(x)); a=new int[max][]; for (i=0;i<max;i++) { a[i]=new int[i+1]; } a[0][0]=1; for (i=1;i<max;i++) { a[i][0]=1; a[i][a[i].length-1]=1; for (j=1;j<a[i].length-1;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; } } for(i=0;i<max;i++) { //for(j=0;j<=max-i;j++) System.out
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值