切面條解析~(藍橋杯)

 

Problem B: 切面條

]

Description

    一根高筋拉麪,中間切一刀,可以得到2根麪條。
    如果先對摺1次,中間切一刀,可以得到3根麪條。
    如果連續對摺2次,中間切一刀,可以得到5根麪條。
    那麼,連續對摺10次,中間切一刀,會得到多少麪條呢?

Input

包含多組數據,首先輸入T,表示有T組數據.每個數據一行,是對摺的次數。

Output

每行一組數據,輸出得到的麪條數。

Sample Input

3
0
1
2

Sample Output

2
3
5

HINT

#include <iostream> #include <cmath> using namespace std; int main() {  int n,i,m,sum;  cin>>m;  for(i=0;i<m;i++)  {   while(cin>>n)   {    if(n==0)//折0次時,有兩根麪條     sum=2;    else     sum=pow(2,n)+1;//當n>0時sum等於2的N次方加一;    cout<<sum<<endl;   }  }  return 0; } //////////////////////////////// //拿一根繩子模擬一下,就很清晰了! /////////////////////////////// //解析、、、、、、、、//在兩部分中,沒有原始的兩端的一頭視爲左邊 /* 當n==0     sum=2;

      麪條有兩部分,左邊 1 根,右邊 1 根 當n==1     sum=3; 

                   左邊 1 根,右邊 2 根

當n==2     sum=5;

                    左邊 2 根,右邊 3 根

~~~~~每連續對摺一次,左邊部分的麪條數翻倍

當n==3     sum=9;

                    左邊 4 根,右邊 5 根

~~~~~因爲右端有原始的兩頭,所以要比左邊多一根

當n==4     sum=17;

                   左邊 8 根,右邊 9 根

... ...

以此類推

即可判斷當連續折n次時,     左邊 pow(2,n-1)根,右邊 9 根

  兩端加起來即可得出sum=pow(2,n)+1;      當n==0時,其實也符合sum=pow(2,n)+1;

  這樣寫只是爲了便於理解;

  */

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章