目录
for循环介绍
for (初始数据;条件判断;变量变化) {for的语句块}
递归
函数内部调用了自己就是递归,但递归必须有一个出口
算法:斐波那契数列(Fibonacci sequence)
以兔子繁殖为例子,其数值为:1、1、2、3、5、8、13、21、34
递归算法
1 根据数值可以发现规律:从第三个数开始,
第n个数=第n-1个数+第n-2个数 即2=1+1;3=2+1;5=3+2;
2 前两个数不满足此规律,且无规律则作为出口;
pubilc static int rabbitsTotal(int m){
//满足某个条件不调用自己--功能:返回数据;方法运行结束
if(m==1|| m==2) //当m是1、2时,就作为一个递归结束的出口
return 1;
else
//函数内部调用自己
return rabbitsTotal(m-1)+rabbitsTotal(m-2)
//若不为1、2,则利用规律调用函数
}
非递归算法
根据递归规律,写非递归
public static int rabbitFn2(int n){
int n1=0; int n2=0;int nownum=0;
for (int i=1;i<=n;i++){
if(i==1){ n1=1;nownum=1; }
else if(i==2){ n2=1;nownum=1; }
else { nownum=n1+n2;n1=n2;n2=nownum; }
}
return nownum;
}
双层for循环嵌套
双层for循环打印1-100,每行10个
for(int i=1;i<=10;i++){ //外层表示:行
for (int j=1;j<=10;j++){ //内层表示:列
System.out.print(count+"\t");count++;
}
System.out.println();
}
判断101-200之间所有素数
方法一 判断长度
for(int i=101;i<201;i++){
int j=0;
for(j=2;j<=(int)Math.sqrt(i);j++){
if(i%j==0){ //若i与j的余数为0则说明,i能被j整除
break; }
else { continue;}
}
if (j-1 == (int)Math.sqrt(i)){
System.out.println(i+"是素数");
//若j的值等于内部循环次数则说明它没有找到能把i整除的数则i为素数
}
}
方法二 设置Boolean
for (int i1=101;i1<201;i1++){
Boolean v=true;
for(int j1=2;j1<=(int)Math.sqrt(i1);j1++){
if(i1%j1==0){ //若i与j的余数为0则说明,i能被j整除
v=false;
break;
}
}
if (v){
System.out.println(i1+"是素数");
}
}
找一个数它的因子之和
因子指除它本身以外,能整除它的
public static int perfectSelect(int num){
int total=0;
for(int i=1;i<num;i++){
if(num%i==0){
total+=i;
}
}
return total;
}
毫秒级计算时间
System.currentTimeMillis() ——long类型
1000毫秒=1秒
编译错误
当java源文件编译为字节文件,即.java文件转变为.class文件时出现的错误;