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

来源:互联网 发布:ubuntu mysql安装路径 编辑:程序博客网 时间:2024/05/18 03:11

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个值

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

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

}

}

}

同类其他面试题 点击新一篇或旧一篇可浏览全部同类面试题

新一篇:Java多线程方面的编程笔试题
旧一篇:编程题:求a+aa+aaa+…….+aaaaaaaaa=? 其中a为1至9之中的一个数,项数也要可以指定。

共有7 条 关于 “Java编程题,都是比较经典的面试题”的评论

  • 1
    小肉包:

    第一个程序编写的有问题,是错的

  • 2
    小肉包:

    2.0/1.0+4.0/2.0+8.0/4.0+16.0/8.0。。。这是你的输出,你的分母的赋值不对哦!~~应该是
    public static void main(String args[]) {
    double sum=0.0;
    double fenzi=2.0;
    double fenmu=1.0;
    for(int i=1;i<=20;i++){

    sum+=fenzi/fenmu;
    System.out.print(fenzi +"/"+fenmu+"+");
    double tmp=fenzi;
    fenzi=fenzi+fenmu;
    fenmu=tmp;

    }
    System.out.println("="+sum);

    }

  • 3
    cc:

    dasdas

  • 4
    七夕:


    public static void pi(){
    double pi =4.0;
    for(int i=1 ;;i++){
    pi+=Math.pow(-1, i)*(4.0/(2*i+1));
    if(pi>3.1415&&pi<3.1416){
    System.out.println(pi);
    break;
    }
    }
    }

  • 5
    Anonymous:

    第一道题写的有问题
    for(int i=1; i<=20; i++){

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

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

    }

  • 6
    焦静:

    第二道题目有问题
    在for循环的第一句加上
    if (pi > 3.1415 && pi < 3.14160)
    break;

  • 7
    simple-zhaojl:

    package com.mkyong.core.el;

    import org.springframework.context.ApplicationContext;
    importorg.springframework.context.support.ClassPathXmlApplicationContext;

    public class App {


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    //ApplicationContext context=newClassPathXmlApplicationContext(“SpringBeans.xml”);
    //CustomerC obj=(CustomerC)context.getBean(“customerC”);
    // System.out.println(obj);
    //System.out.println(getSum(3));
    // getPI();
    //fibonacci(9);
    test();
    }
    public static double getSum(int n){
    double a=1,b=2,sum=0;

    for(int i=1;i 3.1415 && sum<3.1416){
    System.out.println(sum);
    break;
    }

    b+=2;
    a++;

    }

    }
    public static void fibonacci(int n){
    int a=1,b=1;
    for(int i=3;i<=n;i++){
    int temp;
    temp=b;
    b=a+b;
    a=temp;
    }
    System.out.println(b);

    }
    public static void test(){
    double sum=1;

    double b=3;

    int i=2;
    while(true){
    if(i%2==0){
    sum-=1/b;
    }else{
    sum+=1/b;
    }
    if(Math.abs(1/b)<1e-5){
    System.out.println("第"+i+"项,和值为:"+sum);
    return;
    }
    b+=2;
    i++;
    }

    }

    }

0 0