博客园第一天

作为一个计算机菜鸟,学校里的C语言没学好...在外面报了个班,开始学java,希望记录学习的点点滴滴.

一.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 
1.
程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....

 1 public static void main(String[] args) {
 2 int a[]=new int[100];
 3 a[0]=0;
 4 a[1]=1;
 5 sc=new Scanner(System.in);
 6 int i=sc.nextInt();
 7 for(int n=1;n<=i;n++)
 8 {
 9 a[n+1]=a[n-1]+a[n];
10
11 }
12 System.out.println(a[i]);
13 }

 二.题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5 
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 
(1)
如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 
(2)
如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 
(3)
如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

public static void main(String[] args) {
        // TODO Auto-generated method stub
int k=0;
int m=90;
for(int i=2;i<=m;i++)
{
int flag=0;
for(int j=2;j<=i-1;j++)
{
if(i%j==0)
{
flag++;
}
}
if(flag==0)
{
k=i;//将素数i赋给k

}
if(m%k==0)
{
System.out.println(k);
m=m/k;
}
}

各位路过的大神,如果有更好的方法,请指教,谢谢

原文地址:https://www.cnblogs.com/foreverstudent/p/3048131.html