/**
* 兔子繁殖 斐波那契數列有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少
分析第一個月 一對 第二個月 還是一對 第三個月 2對 第四個月 3對 。。5..8..13
*/
@Test
public void testFibonacci() {
List<Integer> integers = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
if (i == 1 || i == 2) {
integers.add(1);
} else {
integers.add(integers.get(integers.size() - 1) + integers.get(integers.size() - 2));
}
}
System.out.println(integers.toString());
}
/**
* 判斷0-100之間有多少個素數,並輸出所有素數
判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。
*/
@Test
public void testPrime() {
int j;
for (int i = 0; i <= 100; i++) {
if (i % 2 == 0 && i != 2) {
continue; //偶數和1排除
}
System.out.println(i);
for (j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
System.out.println(i);
break;
}
}
}
}
/**
* 九九乘法表
*/
@Test
public void testNine() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i * j);
System.out.print(" ");
}
System.out.println("\t");
}
}
/**
* 水仙花數
打印出所有的 "水仙花數 ",所謂 "水仙花數 "是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個 "水仙花數 ",因為153=1的三次方+5的三次方+3的三次方。
*/
@Test
public void shuixianhua() {
for (int i = 100; i <= 999; i++) {
int a = i % 10;
int b = i / 10 % 10;
int c = i / 100;
if (a * a * a + b * b * b + c * c * c == i) {
System.out.println(i);
}
}
}
/**
* 查詢某個數所有的因數
將一個正整數分解質因數。例如:輸入90,輸出2 3 5 (90=2*3*3*5)。
程序分析:對num進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成:
(1)如果這個質數恰等於num,則說明分解質因數的過程已經結束,打印出即可。
(2)如果num > k,但n能被k整除,則應打印出k的值,並用num除以k的商,作為新的正整數你num,重復執行第一步。
(3)如果num不能被k整除,則用k+1作為k的值,重復執行第一步
*/
@Test
public void testYinShu() {
int num = 90;
int k = 2;
while (num >= k) {
if (num == k) {
System.out.print(num);
System.out.print("");
} else if (num % k == 0) {
num = num / k;
System.out.print(k);
System.out.print("");
}
k++;
}
}