黑马程序员技术交流社区

标题: 数序列:2/1,3/2,5/3,8/5,13/8,21/13....求前20项的和 [打印本页]

作者: 邹学良    时间: 2013-3-4 09:56
标题: 数序列:2/1,3/2,5/3,8/5,13/8,21/13....求前20项的和
本帖最后由 邹学良 于 2013-3-7 10:09 编辑
  1. public class Fibonacci
  2. {

  3. private static double y;
  4. public static void main(String args[])
  5. {

  6. int i=1;
  7. double y=0;
  8. double sum=0;
  9. for(i=1;i<=22;i++) {
  10. if(i>2)
  11. {
  12. y=f(i)/f(i-1);

  13. sum+=y;
  14. }
  15. }
  16. System.out.print(sum+" ");

  17. }
  18. public static double f(double x)
  19. {

  20. if(x==1 || x==2){
  21. return 1;
  22. }else{
  23. return f(x-1)+f(x-2);
  24. }
  25. }

  26. }
复制代码
怎么通过总和用递推打印出数列呢?
大神们说说思想即可


作者: 张宁    时间: 2013-3-4 17:43
那你写方法传入4个参数
2个分子,2个分母
你显示数列时候还得处理吧
3/2返回时候为1
最好用“3”+“/”+"1"
递归的时候如果等于那个结果就停止
否则继续调用该方法
每调用一次通过System。out。print打印一条组合起来的数列
注意,每次递归时候需要返回值,这里还是要返回算出来的结果
或者你在外面去定义变量,每次调用方法时候加上结果





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2