求数列:1,1,2,3,5,8.......第40个的数值。数列f(1)=1,f(2)=2;f(n)=f(n-1)+f(n-2);
方法一 递归法:
public class Test1 {
public static void main(String[] args) {
System.out.println(f(40));
}
public static int f(int n) {
if (n == 1||n ==2) {
return 1;
} else {
return f(n - 1)+f(n - 2);
}
}
方法二循环:
public class Test2 {
public static void main(String[] args) {
System.out.println(f(40));
}
public static long f(int n)
if(n < 1) {
System.out.println("error")
}
if(n == 1||n ==2 ) {
return 1;
}
long f1 = 1l;
long f2 = 1l;
long f = 0l;
for(int i = 1;i < n-2;i++) {
f =f1 + f2;
f1 = f2;
f2 = f;
}
return f;
}
}
输出 1--100内前五个可以被6整除的数。
方法一:
public class Test3 {
public static void main(String [] args) {
int Num = 0;
for(int i = 1;i <= 100;i++) {
if(i % 6 == 0) {
System.out.println(" " +i);
Num++;
}
if(Num == 5) break;
}
}
方法二:
public class Test3 {
public static void main(String [] args) {
int i = 1; int Num = 0;
while(i <= 100) {
if(i % 6 ==0) {
System.out.println(“ ” +i);
Num++;
}
if(Num ==5) {
break;
}
i++;
}
}
}
总结:
不同语句通过程序员的编译可以完成相同的要求。我们学习语句也不能死学,要懂得灵活运用一题多解。