Java编程题,都是比较经典的面试题

  1. 求 2/1+3/2+5/3+8/5+13/8……前20项之和?

  class Sum{

  public static void main(Sting[] args){

  double sum=0;

  double fenZi=2.0, fenMu=1.0;    //初始的分子 (fenZi)=2,分母(fenMu)=1

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

  sum += fenZi / fenMu ;

  fenMu = fenZi;           //下一项的分母 = 上一项的分子

  fenZi += fenMu;         //下一项的分子 = 上一项的分子加分母

  }

  System.out.println(“sum= “sum);

  }

  }

  2、利用程序输出如下图形:

  *

  * * *

  * * * * *

  * * * * * * *

  * * * * *

  * * *

  *

  class Asterisk{

  public static void main(String[] args){

  for (int i=1; i<=13; i+=2){

  for(int j=1; j<=i && i+j<= 14; j++){System.out.print(“* “);}

  System.out.println();  // 换行

  }

  }

  }

  3、计算圆周率

  PI=4-4/3+4/5-4/7……

  打印出第一个大于 3.1415小于 3.1416的值

  class Pi {

  public static void main(String[] args){

  double pi =0;  //定义初始值

  double fenZi = 4;    //分子为4

  double fenMu = 1;  //第一个4,可看作分母为1 的分式,以后的分母每次递增2

  for (int i = 0; i < 1000000000; i++){ //运行老久,java培训减少循环次数会快很多,只是精确度小些

  pi += (fenZi/fenMu) ;

  fenZi *= -1.0;    //每项分子的变化是+4,-4,+4,-4 …

  fenMu += 2.0;    //分母的变化是1,3,5,7, …   每项递加2

  }

  System.out.println(pi);

  }

  }

  输出结果为pi = 3.1415926525880504,应该不精确

  4、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值

  1  1  2  3  5  8  13  21  34

  规律:一个数等于前两个数之和

  //计算斐波那契数列(Fibonacci)的第n个值

  public class Fibonacci{

  public static void main(String args[]){

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

  int n1 = 1;//第一个数

  int n2 = 1;//第二个数

  int sum = 0;//和

  if(n<=0){

  System.out.println(“参数错误!”);

  return;

  }

  if(n<=2){

  sum = 1;

  }else{

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

  sum = n1+n2;

  n1 = n2;

  n2 = sum;

  }

  }

  System.out.println(sum);

  }

  }

  //计算斐波那契数列(Fibonacci)的第n个值

  //并把整个数列打印出来

  public class FibonacciPrint{

  public static void main(String args[]){

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

  FibonacciPrint t = new FibonacciPrint();

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

  t.print(i);

  }

  }

  public void print(int n){

  int n1 = 1;//第一个数

  int n2 = 1;//第二个数

  int sum = 0;//和

  if(n<=0){

  System.out.println(“参数错误!”);

  return;

  }

  if(n<=2){

  sum = 1;

  }else{

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

  sum = n1+n2;

  n1 = n2;

  n2 = sum;

  }

  }

  System.out.println(sum);

  }

  }

  5、求1-1/3+1/5-1/7+1/9……的值。

  a,求出前50项和值。

  b,求出最后一项绝对值小于1e-5的和值。

  6、在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下:

  *

  ***

  *****

  *******

  *********

  //打印金字塔图案

  public class PrintStar{

  public static void main(String args[]){

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

  for(int i=1;i<=col;i++){//i表示行数

  //打印空格

  for(int k=0;k<col-i;k++){

  System.out.print(” “);

  }

  //打印星星

  for(int m=0;m<2*i-1;m++){

  System.out.print(“*”);

  }

  System.out.println();

  }

  }

  }

  7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和

  打印出所有的可能

  //任何一个大于六的偶数可以拆分成两个质数的和

  //打印出所有的可能

  public class Gedebahe{

  public static void main(String args[]){

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

  if(num<=6){

  System.out.println(“参数错误!”);

  return;

  }

  if(num%2!=0){

  System.out.println(“参数错误!”);

  return;

  }

  Gedebahe g = new Gedebahe();

  //1不是质数,2是偶数,因此从3开始循环

  for(int i=3;i<=num/2;i++){

  if(i%2==0){//如果为偶数,退出本次循环

  continue;

  }

  //当i与num-i都为质数时,满足条件,打印

  if(g.isPrime(i) && g.isPrime(num-i)){

  System.out.println(i+” + “+(num-i)+” = “+num);

  }

  }

  }

原文地址:https://www.cnblogs.com/javaitpx/p/2794176.html