#include <iostream>
using namespace std;
bool fibon_elem(int , int &);
int main()
{
int pos;
cout << "Please entr a position: ";
cin >> pos;
int elem;
if (fibon_elem (pos,elem))
cout << "element # " << pos
<< " is " << elem << endl;
else
cout << "Sorry,Could not calculate element # "
<< pos << endl;
return 0;
}
bool fibon_elem (int pos,int &elem)
{
//检查位置值合理否
if (pos <= 0 || pos > 1024)
{
cerr << "invalid position: " << pos
<< " -- cannot handle request!\n";
return false;
}
//位置值为1和2时,elem的值为1
elem = 1;
int n_2 = 1;
int n_1 = 1;
for ( int ix = 3; ix <= pos; ++ix)
{
elem = n_2 + n_1;
n_2 = n_1;
n_1 = elem;
}
return true;
}
这种用户想知道的两个或甚至更多元素值,他必须这行这个程序两次
或多次,改写 main( ),使他允许用户不断输入位置值,直到用户希望停止为止
int main()
{
int pos;