使用循环输出斐波那契数列的前10个数
//1 1 2 3 5 8 13 21 34 55
System.out.println("=====方法1:循环======");
int n=0;//当前项
int n1 = 1;//前一项
int n2=0;//前二项
for(int i=1;i<=10;i++){
if(i==1){
n=1;
}else{
n=n1+n2;//当前项是前两项的和
n2=n1;//把前面一项给前面两项
n1=n;//把当前项给前面一项
}
System.out.print(n+" ");
}
System.out.println();
System.out.println("========方法2:数组==========");
//1 1 2 3 5 8 13 21 34 55
int[] arr=new int[10];
for(int i=0;i<arr.length;i++){
if(i==0||i==1){
arr[i]=1;
}else{
arr[i]=arr[i-1]+arr[i-2];
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔子不死,问每个月的兔子总数为多少?
第十个月总量
int n1=0;//前一个数
int n2=1;//后一个数
int num=1;//当前数
for(int i=1;i<=10;i++) {
if(i==1) {
num=1;
}else {
num=n1+n2;
n1=n2;
n2=num;
}
System.out.print(num+"\t");
}
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
分析:
分子 2 3 5 8 13 21
分母 1 2 3 5 8 13
int zi=2;
int mu=1;
double sum=0;
for(int i=1;i<=20;i++) {
sum+=(double)zi/mu;
int temp=mu;
mu=zi;
zi=zi+temp;
}
System.out.println("和为:"+sum);