java实现Fibonacci求和源代码
1.1 需求分析:
本程序的主要功能:利用简单变量“数据平移”方法进行数列求和,即新的Fibonacci项newItem总是“距它最近”的前两项(old1与old2)的累加和。
输入形式:输入要查找的数列项。
输出值的范围:当在最大值的范围内,输出该数列项的值,当超过最大值的范围时,进行出错处理。
程序所能达到的功能:能够逐项进行数列求和。
测试的数据:3,45,46
1.2  概要设计:
    该程序进行数列求和,新的Fibonacci项newItem总是“距它最近”的前两项(old1与old2)的累加和。当超出一定范围时,进行出错处理。其中,old1代表第一个加数,old2代表第二个加数,find代表要查找的数据项,newItem表示old1与old2之和。
1.3  详细设计与编码:
见源程序。
1.4  调试分析:
在这次实验中,刚开始运行时,我没有考虑到越界的问题,但当我输入45时是大约18亿,没问题,但输入46时却变成了负数,以为是程序出错了,到后来想了会原来是越界问题,当数据大于所定义的类型的最大值时,计算机就会用补码来表示,而在Java中,整型的最大值大约是21亿,因此到46项时,就会超过最大值,因此就会出错。
1.5  用户使用说明:
用户根据控制台的提示,完成相应的操作。
1.6  测试结果:
输入3:输入4:输入45:输入46: 
1.7  设计心得:
通过这次实验,因为是第一次用Java写了这样的一个程序,我感到比较满意,虽然在调试阶段遇到了不少的麻烦,但总算被我给克服了。再次,我也学会了如何去检查程序的错误,通过System.out.println()语句,能够实现错误数据的定位。
import java.util.*;
class FibonacciTest
{
 public static void main(String[] args)
 {
  System.out.print("/*************************************************\n\n"+
                    "File name:       软件设计课程设计基础题(FibonacciTest.java)\n\n"+
                    "Author: 计06-1  郭献铮                 Date: 07.11.25\n\n"+
                    "Description:     该程序进行数列求和,新的Fibonacci项newItem总是“距它最近”的前两项(old1与old2)的累加和。\n\n"+
                    "Function List:  // 主要函数列表,每条记录应包括函数名及功能简要说明\n\n"+
                    "1.main()函数  完成各种提示与主操作输入输出\n\n"+
                    "*****************************************************/\n\n");
  
  int old1,old2;  //初始化两个数
  old1=1;old2=2;
  
  System.out.print("请输入要查找的项:");
  Scanner in=new Scanner(System.in);
  int find=in.nextInt();
  
  int newItem=0;  //新的Fibonacci项,累加和
  
  
原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn 值
  {
   for(int j=2;j<find;++j)  //实现数据平移
    {
     newItem=old1+old2;
     old1=old2;old2=newItem;
     if(newItem<0){System.out.println("超过最大值!");System.exit(0);}  //如果超过int的最大值,输出并退出
    }
   
   System.out.println("输出第"+find+"项为:"+newItem);  //输出newItem项1829