搜索工作 |
搜索工作 公司点评 查工资 看趋势
微信

使用微信服务,更方便

职友集>Java面试题 > Java编程题,都是比较经典的面试题

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

2015-02-26 06:30:01 阅读( 13 )

2374人 收藏本页

标签: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++){ //运行老久,减少循环次数会快很多,只是精确度小些

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

}

}

}

来自IT公司面试手册

下一篇:Java多线程方面的编程笔试题

上一篇:编程题:求 a+aa+aaa+…….+aaaaaaaaa=? 其中a为1至9之中的一个数,项数也要可以指定。

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题