日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汉诺塔问题hdu 2065——找规律

發布時間:2024/9/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汉诺塔问题hdu 2065——找规律 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這類題目就是紙上模擬,找規律

問題描述:在一塊銅板上有三根桿,目的是將最左邊桿上的盤全部移到右邊的桿上,條件是不允許直接從最左(右)邊移到最右(左)邊(每次移動一定是移到中間桿或從中間移出),也不允許大盤放到下盤的上面

問:現在有N個圓盤,她至少多少次移動才能把這些圓盤從最左邊移到最右邊??

紙上模擬:模擬之后發現將圓盤從左移動到中間的次數=從中間移到右邊=1/2從左邊移到右邊次數

f(n)表示至少n次移動才能把這些圓盤從最左邊移到中間? ? a(n)表示第n個圓盤移動的次數

當n=1時,f(1)=1? ? a(1)=1

當n=2時,f(2)=4? ? ?a(1)=3?? a(2)=1

當n=3時,f(3)=13? ??a(1)=9? ?a(2)=3? ?a(3)=1

規律:a(n)呈現以3為公比的等比數列,f(n)為等比數列的和

所以:從左邊移到中間需:s(n)=(3^n-1)/2;

從左邊移到右邊需:s(n)=(3^n-1);

代碼:

#include<iostream> using namespace std; int main() {int n;while(cin>>n){long long sum=1;for(int i=0;i<n;i++)sum=sum*3;sum=sum-1;cout<<sum<<endl;} } View Code

?

轉載于:https://www.cnblogs.com/Aiahtwo/p/10460535.html

總結

以上是生活随笔為你收集整理的汉诺塔问题hdu 2065——找规律的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。