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