博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
码农谷 求前N项之和
阅读量:6226 次
发布时间:2019-06-21

本文共 2011 字,大约阅读时间需要 6 分钟。

题目描述

有一分数序列:2/1、3/2、5/3、8/5、13/8、21/13......。求出这个数列的前N项之和,保留两位小数。

输入描述

N

输出描述

数列前N项和

样例

输入:

10

输出:

16.48 第一次code:   使用递归:   
 
1 import java.util.*;  2 import java.math.BigDecimal; 3  4 public class jisuanrong  5 {   6     public static double SimpleAdding(int num)  7     {  8            if(num==1 || num == 0) 9            {10                return 1;11            }12            else13            {14                return SimpleAdding(num-1)+SimpleAdding(num-2);15            }16       } 17   public static double aa(int num)18   {19       if(num == 1)20       {21           return 2;22       }23       else24       {25           return SimpleAdding(num+1)/SimpleAdding(num);26       }27   }28   public static double bb(int num)29   {30       if(num == 1)31       {32           return 2;33       }34       else35       {36           return aa(num)+bb(num-1);37       }38   }39   public static void main (String[] args) 40   {  41     // keep this function call here     42     Scanner s = new Scanner(System.in);43     BigDecimal   b   =   new   BigDecimal(bb(s.nextInt()));  44     double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();  45     System.out.println(f1); 46   }   47 }
 

 

时间效率非常低,当输入数为30时,耗费时间为62毫秒;输入35时,耗费时间为588毫秒;输入40时,耗费时间为5438毫秒。越往后,每增大1,耗费时间增长速率为70%。 ================================== 第二次code: 使用了循环:
1 import java.util.*;  2  3 public class Main 4 {   5   public static void main (String[] args)  6   {      7     Scanner s = new Scanner(System.in); 8     String  str = String.format("%.2f",sum(s.nextInt()));   9     System.out.println(str); 10   }   11   public static double sum(int num)12   {13        double i=2,k=1,n,s=0,m;14         for(n=1;n<=num;n++)15         {16             s+=i/k;17             m=i;18             i=i+k;19             k=m;20         }21       return s;22   }23 }

时间上耗费比递归要少的很多,但是计算到1474时,可以运算出结果,结果为2385.28,运算到1475时,结果为Infinity,运算到1476,结果是NAN.

 

posted on
2016-08-23 23:24 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/niithub/p/5798230.html

你可能感兴趣的文章
熊彼特的创新理论:非连续性模型
查看>>
Windows10内置ubuntu子系统安装后中文环境设置
查看>>
Spring Security教程(八):用户认证流程源码详解
查看>>
由浅入深:CNN中卷积层与转置卷积层的关系
查看>>
Solve Error: "errcode": 40016, "errmsg": "invalid button size hint"
查看>>
EF Core Fluent API
查看>>
MAC 设置环境变量path的几种方法
查看>>
JVM垃圾收集器(2)
查看>>
SpringBoot之hello world!
查看>>
Socket拆包和解包
查看>>
工作之忠、智、勇
查看>>
电子书下载:Beginning Nokia Apps Development: Using MeeGo, Mobile QT and OpenSymbian
查看>>
mysql 5.0存储过程学习总结
查看>>
matlab练习程序(Ritter‘s最小包围圆)
查看>>
SQL存储过程教程
查看>>
最详细的临时表,表变量的对比
查看>>
C#中直接打印Report文件(rdlc)
查看>>
C 温故知新 之 指针:基本概念&变量的指针和指向变量的指针
查看>>
引用计数
查看>>
C#:XML操作类 (转)
查看>>