1、題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一
这就是斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1 | 2 | 3 | 4 | 5 | 6 | 7 |
1 | 1 | 2 | 3 | 5 | 8 | 13 |
public class TestDemo { public static void main(String[] args) throws Exception { int i; //i表示月份 long arr[] = new long[36];//这个数值用来表示每个月兔子的数量 arr[0] = arr[1] = 1; System.out.println("第1个月有兔子1对," + "总数是" + 2); System.out.println("第2个月有兔子1对," + "总数是" + 2); for (i = 2; i <= 35; i++) { arr[i] = arr[i - 1] + arr[i - 2]; System.out.println("第" + i + "个月有兔子" + arr[i] + "对," + "总数是" + arr[i] * 2); } } }2、题目:判断101-200之间有多少个素数,并输出所有素数。
素数又叫质数,就是除了1和它本身之外,再也没有整数能被它整除的数。
public class TestDemo { public static void main(String[] args) throws Exception { int sum=0; for (int i = 101; i < 201; i++) { //i是101到200之间的数字 for (int j = 2; j <=i; j++) { //j是2到200之间的数字 if(j==i) { //如果i=j则输出 System.out.println(j); sum++; } else if(i%j==0) { //如果i能被j整除则表明i不是素数,计数器+1 break; } } } System.out.println("总共有"+sum+"个素数"); } }3、打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
public class TestDemo { public static void main(String[] args) { int i ; for (i = 100; i < 1000; i++) { int a = i/100; int b = (i%100)/10; int c = i%10; if (i==a*a*a+b*b*b+c*c*c){ System.out.println(i); } } } }
int sum,i,j,k; for(i=1;i<=9;i++){ for (j=0;j<=9;j++){ for (k=0;k<=9;k++){ sum=i*i*i+j*j*j+k*k*k; if (i*100+j*10+k==sum){ System.out.println(sum); } } } }4、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
import java.util.Scanner; public class TestDemo { public static void main(String[] args) { System.out.println("请输入正整数:"); Scanner scanner= new Scanner(System.in); int num = scanner.nextInt(); //System.out.print(num+"="); for(int i=2;i<=num;i++) { while(num!=i) { if(num%i==0) { System.out.print(i+"*"); num=num/i; } else break; } } System.out.println(num); } }