/**
* 兔子繁殖 斐波那契数列有一对兔子,从出生后第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(" ");
}
}
/**
* 水仙花数
打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如: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++;
}
}