標籤: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