查看: 1446|回復: 0
打印 上一主題 下一主題

[ZJ] d950 - A. 帕斯卡三角形

[複製鏈接]
  • TA的每日心情
    慵懶
    2014-9-17 13:56
  • 簽到天數: 1 天

    [LV.1]初來乍到

    22

    主題

    57

    帖子

    533

    積分

    高級會員

    Rank: 4

    積分
    533

    台南一中資訊社新手達陣

    跳轉到指定樓層
    樓主
    發表於 2014-5-5 13:52:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

    趕快加入我們來參與討論吧!

    您需要 登錄 才可以下載或查看,沒有帳號?加入我們

    x
    本帖最後由 HSCHE 於 2014-5-5 13:56 編輯

    內容 :
      法國科學家帕斯卡誕生於 1623 年,在 13 歲的時候發現帕斯卡三角形:
    1
    1  1
    1  2  1
    1  3  3  1
    1  4  6  4  1
    1  5  10 10 5  1
    1  6  15 20 15 6  1
      我們可以發現在帕斯卡三角形中,每一橫列都是左右對稱的,第 n 橫列有 n 個數字,每一個數字等於上一橫列左右兩個數字的和。
      事實上,南宋楊輝曾經在其著作中引用北宋賈憲所發現的相同三角形,時間點大約比巴斯卡早了六百年,所以帕斯卡三角形又稱楊輝三角形或賈憲三角形。

    輸入說明 :
    第一行有一個整數 T ,代表接下來有幾組測試資料。
      每一組測試資料有兩個整數 M N(1 M 13, 1 N 13)

    輸出說明 :
    對每筆測試資料輸出帕斯卡三角形第 M 橫列第 N 個數字的值。
    範例輸入 :
    31 13 26 5
    範例輸出 :
    125
    提示 :

    出處 :
    2010 NPSC 國中組決賽


    網址:http://zerojudge.tw/ShowProblem?problemid=d950
    解題感想:一開始我是用暴力法(誤),其實這題只是標準的for迴圈和遞迴,注意規律頭尾就可輕鬆AC
    AC CODE:
    #include<iostream>
  • using namespace std;
  • int f(int n,int m)
  • {
  •         if(m==0 || n==m)return 1;
  •         else return f(n-1,m-1)+f(n-1,m);
  • }
  • int main()
  • {
  •         int T;
  •         cin>>T;
  •         for(int i=0;i<T;++i)
  •         {
  •                 int n,m;
  •                 cin>>n>>m;
  •                 cout<<f(n-1,m-1)<<"\n";
  •         }
  •         //while(1);
  •         return 0;
  • }




  • 評分

    參與人數 1金幣 +2 收起 理由
    domen111 + 2

    查看全部評分

    回復

    使用道具 檢舉

    您需要登錄後才可以回帖 登入 | 加入我們

    本版積分規則

    快速回覆 返回頂部 返回列表