对递回做了一下复习。 private int Process1(int i) { //计算数组{1,1,2,3,5,8.......} 第30位值 if (i == 0) return 0; if (i == 1) return 1; else { //return Process1(i - 1) + Process1(i - 2); int a = Process1(i - 1); int b = Process1(i - 2); return a + b; } } 有这么一个函数,举个例,假如我要得到第5位的值,就算在VS上调试看得也不甚懂,如果写成下面这个形式就容易明白了 (其实就是一个函数的重复调用) private int Process05(int i) { i = 5; //计算数组{1,1,2,3,5,8.......} 第30位值 if (i == 0) return 0; if (i == 1) return 1; else { //return Process1(i - 1) + Process1(i - 2); int a = Process04(i - 1); int b = Process03(i - 2); return a + b; } } private int Process04(int i) { i = 4; //计算数组{1,1,2,3,5,8.......} 第30位值 if (i == 0) return 0; if (i == 1) return 1; else { //return Process1(i - 1) + Process1(i - 2); int a = Process03(i - 1); int b = Process02(i - 2); return a + b; } } private int Process03(int i) { i = 3; //计算数组{1,1,2,3,5,8.......} 第30位值 if (i == 0) return 0; if (i == 1) return 1; else { int a = Process02(i - 1); int b = Process01(i - 2); return a + b; } } private int Process02(int i) { i = 2; //计算数组{1,1,2,3,5,8.......} 第30位值 if (i == 0) return 0; if (i == 1) return 1; else { int a = Process01(i - 1); int b = Process00(i - 2); return a + b; } } private int Process01(int i) { return 1; } private int Process00(int i) { return 0; }