Java面試題1

來源:互聯網
上載者:User

標籤:java面試題1

1.        要求計算出1!+2!+……+60!的結果?

如果要計算資料,那麼肯定首先應該存有一個資料類型,本次只能用double資料類型。

實現一:通過代碼直接完成

public class TestDemo{
    public static  void main(String[] args){
    
        double sum = 0.0;//儲存最終的計算結果
        for(int x =1;x<=60;x++){
            double temp = 1.0;//儲存每一次階乘的結果
            for(int y = 1;y <= x;y++){
                temp *= y;//計算階乘
            }
            sum += temp;
        
        }
        System.out.println("計算結果"+sum);
    
    }


}

實現二:使用遞迴完成,如果想要利用遞迴完成需要兩次遞迴

遞迴操作一:負責每一個資料的階乘操作;

遞迴操作二:將每一個的遞迴操作的結果進行相加

public classTestDemo{
    public static  void main(String[] args){
   
        System.out.println("計算結果"+sum(60));
   
    }
   
    public static double sum(int num){
        if(num==1){
            return 1;
        }else{
       
            return mul(num)+sum(num-1);
        }
   
    }
    public  static double mul(int num){
        if(num == 1){
            return 1;
        }else{
       
            return num*mul(num-1);
        }
    
    }

}   

2.      編寫一個方法,此方法可以將一個整數變為二進位輸出。

實現一:利用普通代碼實現

public class TestDemo{
    public static  void main(String[] args){
                   int num = 10 ;//10010

String str = ””;//定義字串儲存
          while(num !=0){//已經沒有數值了

                            Str= (num %2)+str;

                            num=num/2;

}
         System.out.println(str);
 }

 

實現二:通過遞迴實現

public class TestDemo{
    public static  void main(String[] args){
                   toBinary(18);

}
         public static voidtoBinary(int num){

         If(num==0){

                   Return;

}

toBinary(num/2);

System.out.println(num%2);

}
 }

3.    

有5個人坐在一起,問第5個人多少歲,他說比第4個人大2歲。問第4個人多少歲,他說比第3個人大2歲。問第3個人多少歲,他說比第2個人大2歲。問第2個人多少歲,他說比第1個人大2歲。問第1個人多少歲,他說是8歲。請問第5個人多大?

實現一:使用普通代碼實現

public class TestDemo{
    public static  void main(String[] args){
                   int age = 8;

for(int x=0;x<4;x++){

         age += 2 ;

}

System.out.println(age);

}
 }

實現二:使用遞迴實現

public class TestDemo{
    public static  void main(String[] args){
                   age(5);

}

public static int age(int num){

  if(num==1){

   return8;

}

  return 2+age(num-1);

 

}
 }


本文出自 “10281302” 部落格,請務必保留此出處http://10291302.blog.51cto.com/10281302/1688314

Java面試題1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.