題目:古典問題:有一對兔子,從出生后第 3 個月起每個月都生一對兔子,小兔子長到第三
個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
package exercise;
import java.util.*;
public class MainCorrect {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int month = in.nextInt();
int t = 1, n=0,oldT=1, a;
if (month == 1)
System.out.println("第一個月兔子數:" + 1);
else if (month == 2)
System.out.println("第二個月兔子數:" + 1);
else if (month >= 3) {
for (int i = 3; i <= month; i++) {
n = t+oldT;
oldT=t;
t=n;
}
System.out.println("第"+month+"個月兔子數:" + n);
}
}
}
題目:判斷 101-200 之間有多少個素數,并輸出所有素數。
程序分析:判斷素數的方法:用一個數分別去除 2 到 sqrt(這個數),如果能被整除, 則表明
此數不是素數,反之是素數。
package exercise;
public class Main2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 101; i <= 200; i++) {
int ok = 1;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
ok = 0;
break;
}
}
if(ok==1)
System.out.println("這個數是質數:" +i);
}
}
}
題目:打印出所有的 "水仙花數 ",所謂 "水仙花數 "是指一個三位數,其各位數字立方和
等于該數本身。例如:153 是一個 "水仙花數 ",因為 153=1 的三次方+5 的三次方+3 的
三次方。
public class Main3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i1, i2, i3;
for (int i = 101; i < 1000; i++) {
i1=i/100;
i2=i%100/10;
i3=i%10;
if(Math.pow(i3, 3)+Math.pow(i2, 3)+Math.pow(i1, 3)==i) {
System.out.println(i+"是水仙花數");
}
}
}
}
題目:將一個正整數分解質因數。例如:輸入 90,打印出 90=233*5。
程序分析:對 n 進行分解質因數,應先找到一個最小的質數 k,然后按下述步驟完成:
(1)如果這個質數恰等于 n,則說明分解質因數的過程已經結束,打印出即可。
(2)如果 n <> k,但 n 能被 k 整除,則應打印出 k 的值,并用 n 除以 k 的商,作為新的正整數
你 n,重復執行第一步。
(3)如果 n 不能被 k 整除,則用 k+1 作為 k 的值,重復執行第一步。
package exercise;
import java.util.Scanner;
public class Main4 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int k=2;
while(k<=n) {
if (k == n) {
System.out.println(n);
break;}
else if (n % k == 0) {
System.out.print(k + " * ");
n = n/k;
} else
k++;
}
}
}
題目:利用條件運算符的嵌套來完成此題:學習成績> =90 分的同學用 A 表示,60-89 分之
間的用 B 表示,60 分以下的用 C 表示。
package exercise;
import java.util.*;
public class Main5 {
public static void main(String[] args) {
int x;
char grade;
Scanner s = new Scanner(System.in);
x = s.nextInt();
grade = x >= 90 ? 'A' : x >= 60 ? 'B' : 'C';
System.out.println("等級:" + grade);
}
}