亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

麻煩幫忙解釋如下程序內容

麻煩幫忙解釋如下程序內容

C++
胡說叔叔 2023-02-11 18:14:23
#include<iostream>#include<vector>using namespace std;vector<int>c;int a=1;int b;int fib(int n){c.push_back(a);c.push_back(a);c.push_back(a);for(int i=2;n>i;i++){b=c[i]+c[i-1];c.push_back(b);}return c[n];}int main (){int n;while(cin>>n){cout<<fib(n)<<endl;c.clear();}}
查看完整描述

2 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

#include<iostream>
#include<vector>//使用vector需要引用頭文件 
using namespace std;
vector<int>c;//c是一個vector容量,裝的是int 
int a=1;int b;
int fib(int n)
{
c.push_back(a); //給c裝入三個1,事實上數列頭三個數應該是0,1,1,第一個數應該是0 
c.push_back(a);
c.push_back(a);
for(int i=2;n>i;i++)
{
b=c[i]+c[i-1];//使用下標方式訪問c向量,計算后一個斐波那契數列中的數 
c.push_back(b);//把計算出來的數推入c向量 
}
return c[n];//返回結果是數列第n項 
}
int main ()
{
int n;
while(cin>>n)//每次輸入n,以文件結束符^z為結束 
{
cout<<fib(n)<<endl;//輸出斐波那契數列的第n項 
c.clear();//每次清空c向量,重新計算(事實上如果不清空的話設計得好可以節約計算時間) 
}
}

查看完整回答
反對 回復 2023-02-15
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

#include<iostream>#include<vector>using namespace std;vector<int>c;int a=1;int b;int fib(int n){    c.push_back(a);    c.push_back(a);    c.push_back(a);//像容器中連續插入3個1.    for(int i=2;n>i;i++)//for 循環,如果n>i 循環繼續,并且i逐次+1    {        b=c[i]+c[i-1];//b的值為第i個元素和i+1個元素之和 ,根據規律來說,   c[0],c[1],c[2]都為1,c[3]=2,c[4]=3,c[5]=5,c[6]=8,后者等于前2者之和。        c.push_back(b);//插入b    }    return c[n];//返回的值為第n+1個數比如n的值為3,返回的是c[3]但是實際是第四個數,應該是2}int main (){    int n;      //定義n int 類型。。    while(cin>>n)  //輸入n    {    cout<<fib(n)<<endl; //輸出函數fib的返回值。。這邊可以轉到上面繼續~    c.clear();//清空容器c。    }}


查看完整回答
反對 回復 2023-02-15
  • 2 回答
  • 0 關注
  • 87 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號