本帖最后由 LoveMyself 于 2015-5-23 02:31 编辑
- public class feibonaqi {
- /**
- * 1.遍历出斐波那契数列前100个数
- */
- public static void main(String[] args) {
- method_1(100);
- }
- public static int method(int i) {
- // 前两项不在通项范围
- if (i == 1 || i == 2) {
- // 前两项返回自身的值1
- return 1;
- } else {
- // 此数列从第三项开始每一项的值是前两项的和(规律)
- // 递归算法,在此方法之内调用本方法
- return method(i - 1) + method(i - 2);
- }
- }
- public static void method_1(int n) {
- // 此处i控制的是角标,n控制的是项数
- for (int i = 1; i <= n; i++) {
- System.out.println("这是斐波那契数列第" + i + "项");
- // 对根据项数对每一项进行遍历输出
- System.out.println(method(i));
- }
- }
- }
复制代码- </blockquote></div><div class="blockcode"><blockquote>
- public class test {
- /*
- * 2、递归算法求和
- */
- static int sum = 0;
- static int flag =0;
- public static void main(String[] args) {
- int[] num = {4,6,8,2,10};
- //用递归算法求和
- recursionAdd(num);
- System.out.println("sum="+sum);
- }
- public static void recursionAdd(int[] num)
- {
- //求和
- sum = sum +num[flag];
- //根据标记flag的变化,来取数组内元素
- flag++;
- //递归结束条件
- if(flag<num.length)
- {
- //递归算法
- recursionAdd(num);
- }
- }
- }
复制代码
通过练习,及网上查找,一致认为递归算法效率很低,想知道原因? |
|