首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请哪位帮小弟我分析一下小弟我写的代码

2012-02-12 
请哪位帮我分析一下我写的代码题目:Fibonacci数列:0,1,1,2,3,5,8,13,21,……(a)编写一个非递归的函数,计算第

请哪位帮我分析一下我写的代码
题目: 
Fibonacci数列: 
0,1,1,2,3,5,8,13,21,…… 
(a)编写一个非递归的函数,计算第n个Fibonacci数; 
(b)确定你的机器上可以打印的最大int类型的Fibonacci数。 

问题:我编译的代码执行后的结果是(b)的显示结果和(a)的显示结果一样的。

我的代码: 
//the file of "Fibonacci.h"
//Definition of class Fibonacci 
class Fibonacci 

public: 
Fibonacci(int); 
void setFibonacci(int); //求第N个的Fibonacci数 
int getFibonacci(); 
void setMaxFibonacci(); //确定你的机器上可以打印的最大int类型的Fibonacci数 
int getMaxFibonacci(); 

void display(); 
}; 


//the file of "Fibonacci.cpp"
//Member-function definitions for class Fibonacci 
#include <iostream > 
using namespace::std; 

#include "Fibonacci.h" 


int number1 = 0; 
int number2 = 1; 
int result = 0; 

int max = 0; 
int max2 = 0; 

Fibonacci::Fibonacci(int n) 

setFibonacci(n); 


//look for the "n" one Fibonacci number 
void Fibonacci::setFibonacci(int n) 

if(n == 1) 

::result = 0; 

else if(n == 2) 

::result = 1; 

else 

for(int i = 2; i < n; i++) 

result = number1 + number2; 
number1 = number2; 
number2 = result; 
::result = result; 




int Fibonacci::getFibonacci() 

return result; 



//find the max Fibonacci number in your computer
void Fibonacci::setMaxFibonacci()
{
int i = 0;
while( i > -1)
{
setFibonacci(i);
::max = getFibonacci();
setFibonacci(i+1);
::max2 = getFibonacci();
if(max > max2)
break;
i++;
}
}

int Fibonacci::getMaxFibonacci() 

return max; 



//show messages 
void Fibonacci::display() 

//cout the "n" one Fibonacci number 
cout < < getFibonacci() < < endl; 

//cout the max Fibonacci number in your computer 
setMaxFibonacci();
cout < < "The largest fibonacci number in your computer(int type) is:" 
< < getMaxFibonacci() < < endl; 




//the file of "testIntF.cpp"
//Create Fibonacci object, and test the program 
#include "Fibonacci.h" 
#include <iostream > 
using namespace::std; 

int main() 

int a; 
cin > > a; 
Fibonacci myFibonacci(a); 
myFibonacci.display(); 

return 0; 



[解决办法]
单步一下你就会发现错误出在setMaxFibonacci()函数中,把int i=0;改成int i=1;
问题解决。
[解决办法]

C/C++ code
class Fibonacci{public:    Fibonacci(int);    void setFibonacci(int);  //求第N个的Fibonacci数    int getFibonacci();    void setMaxFibonacci(); //确定你的机器上可以打印的最大int类型的Fibonacci数    int getMaxFibonacci();    void display();private:    int ret;    int pre_max;    int post_max;}; 

热点排行