essential c++ 第二章第一節的代碼

來源:互聯網
上載者:User

#include< iostream >

using namespace std;

bool fibo( int pos, int & elem );
bool fibo_display( int pos );

int main()
{
  int pos;
  int elem=0;
  bool bl = true;
  char ch;

  while( bl )
  {
 cout<<" input the pos : ";
 cin>>pos;

 if(fibo( pos, elem ))
 cout<<" the num at the pos "<<pos<<" is "<<elem<<endl;

 fibo_display( pos );

 cout<<" Do you want to continue,Y/N ? ";
 cin>>ch;
 if( ch == 'N' || ch == 'n' )
  bl = false;
  }

  return 0;

}

bool fibo( int pos, int & elem )
{
 if( pos <= 0 || pos > 1024 )
 {
  elem = 0;
  return false;
 }

 elem = 1;
 int n_1 = 1;
 int n_2 = 1;

 for( int ix = 2; ix < pos; ix++ )
 {
  elem = n_1 + n_2;
  n_1 = n_2;
  n_2 = elem;
 }

 return true;
}

//  由於這裡並沒有什麼意義,只是用來顯示這個數列,所以也可以用一個void傳回型別的,
//  但裡面的return語句是要改寫的。
bool fibo_display( int pos )
{
 int elem;

 if( pos <= 0 || pos > 1024 )
 {
  elem = 1;
  return false;
 }

 // 此處很值得欣賞的。。。。
 switch( pos )
 {
 
 // break;
 case 2:
  cout<< " elem : 1 ";
  //break;
 default:
  cout<< " elem : 1 ";
 case 1:
  cout<< "  1 ";
  break;
 }

 int n_1 = 1;
 int n_2 = 1;

 for( int ix = 2; ix < pos; ix++ )
 {
  elem = n_1 + n_2;
  n_1 = n_2;
  n_2 = elem;
  cout<< elem << " ";

 //要想在此處控制每行都是十行的元素這樣寫好像是不行的。還要改寫的。

  if(!(ix%10))
   cout<<endl;
 }
 cout<<endl;

 return true;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.