更新時間:2020-04-08 13:47:19 來源:動力節點 瀏覽3290次
1.指數計算問題
有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子對數為多少?
程序分析:兔子的規律為數列1,1,2,3,5,8,13,21....
publicclassProg1{
publicstaticvoidmain(String[]args){
intn=10;
System.out.println("第"+n+"個月兔子總數為"+fun(n));
}
privatestaticintfun(intn){
if(n==1||n==2)
return1;
else
returnfun(n-1)+fun(n-2);
}}
2.指定范圍包含的素數
判斷101-200之間有多少個素數,并輸出所有素數。
程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。
publicclassProg2{
publicstaticvoidmain(String[]args){
intm=1;
intn=1000;
intcount=0;
//統計素數個數
for(inti=m;i<n;i++){
if(isPrime(i)){
count++;
System.out.print(i+"");
if(count%10==0){
System.out.println();
}
}
}
System.out.println();
System.out.println("在"+m+"和"+n+"之間共有"+count+"個素數");
}
//判斷素數
privatestaticbooleanisPrime(intn){
booleanflag=true;
if(n==1)
flag=false;
else{
for(inti=2;i<=Math.sqrt(n);i++){
if((n%i)==0||n==1){
flag=false;
break;
}
else
flag=true;
}
}
returnflag;
}}
3.水仙花數
打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等于該數本身。例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。
publicclassProg3{
publicstaticvoidmain(String[]args){
for(inti=100;i<1000;i++){
if(isLotus(i))
System.out.print(i+"");
}
System.out.println();
}
//判斷水仙花數
privatestaticbooleanisLotus(intlotus){
intm=0;
intn=lotus;
intsum=0;
m=n/100;
n-=m*100;
sum=m*m*m;
m=n/10;
n-=m*10;
sum+=m*m*m+n*n*n;
if(sum==lotus)
returntrue;
else
returnfalse;
}}
4.分解質因數
將一個正整數分解質因數。例如:輸入90,打印出90=233*5。
程序分析:對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成:
(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。(2)如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數n,重復執行第一步。(3)如果n不能被k整除,則用k+1作為k的值,重復執行第一步。
publicclassProg4{
publicstaticvoidmain(String[]args){
intn=13;
decompose(n);
}
privatestaticvoiddecompose(intn){
System.out.print(n+"=");
for(inti=2;i<n+1;i++){
while(n%i==0&&n!=i){
n/=i;
System.out.print(i+"*");
}
if(n==i){
System.out.println(i);
break;
}
}
}}
5.條件運算符使用
利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。
程序分析:(a>b)?a:b這是條件運算符的基本例子。
publicclassProg5{
publicstaticvoidmain(String[]args){
intn=-1;
try{
n=Integer.parseInt(args[0]);
}catch(ArrayIndexOutOfBoundsExceptione){
System.out.println("請輸入成績");
return;
}
grade(n);
}
//成績等級計算
privatestaticvoidgrade(intn){
if(n>100||n<0)
System.out.println("輸入無效");
else{
Stringstr=(n>=90)?"分,屬于A等":((n>60)?"分,屬于B等":"分,屬于C等");
System.out.println(n+str);
}
}}
以上就是動力節點java培訓機構的小編針對“5道Java基礎編程練習題”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習