用java语言写出1 1 2 3 5 8 13 21 34 55 89 144
分析:1 1 2 3 5 8 13 21 34 55 89 144 可以发现 从第三个数字开始 第三个数字就是前面两个数字的相加
public class One {
public static void main(String[] args) {
//用java语言写出1 1 2 3 5 8 13 21 34 55 89 144
int nums[] = new int[12];
//临时保存输出的字符串
StringBuffer sb = new StringBuffer();
for(int i = 1; i<= 12 ; i++){
if(i == 1){
//i = 1时 把1保存到数组0的地址
nums[i-1]=i;
//把 数组0的值 追加到sb中
sb.append(""+nums[i-1] + " ");
}else if(i == 2){
//i = 2时 把1保存到数组1的地址
nums[i-1]=i-1;
//把 数组1的值 追加到sb中
sb.append(""+nums[i-1] + " ");
}else{
//临时对象 temp1 保存当前数组 i-3 的值
int temp1 = nums[i-3];
//临时对象 temp1 保存当前数组 i-2 的值
int temp2 = nums[i-2];
//当前数组i-1的值 为 数组 i-3 的值 + 数组 i-2 的值
int temp3 = temp1 + temp2;
//把 temp3 保存到当前数组 i-1
nums[i-1]=temp3;
//把 数组 i-1的值 追加到sb中
sb.append(""+temp3 + " ");
}
}
//输出sb
System.out.println(""+sb);
}
}
结果:
类似这样:
fun(n)
{
if (n == 1)
return 1;
else if(n==2)
return 1;
else if (n>2)
return fun(n) + fun(n-1);
}
用到那些语法?
就是一个递归函数,然后你调用这个函数就是了。
import java.util.Arrays;
public class CalenderTest {
public static void main(String[] args) {
int [] fibonacci = new int[12];
// fibonacci[0] = 1;
// fibonacci[1] = 1;
for (int i = 0; i < fibonacci.length; i++) {
if ( i < 2)
fibonacci[i] = 1;
else
fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2];
}
System.out.println(Arrays.toString(fibonacci));
}
}
这个不就是费不拉稀数列吗。。。。
public class Fbnc {
int f1=1,f2=1;
public Fbnc() {
while(f1<10000)
{
System.out.println(f1);
f2+=f1;
f1=f2-f1;
}
}
public static void main(String[] args) {
Fbnc s =new Fbnc();
}
}
public class Test {
public static void main(String[] args) {
test(0, 0, 11);
}
public static void test(int a, int b, int times) {
if (times == 0) {
return;
}
if (a == 0 && b == 0) {
System.out.println(++a);
System.out.println(++b);
} else {
int temp = a + b;
System.out.println(temp);
a = b;
b = temp;
}
test(a, b, --times);
}
}