0082 萊布尼茲三角形

2022-05-26 06:36:07 字數 794 閱讀 9328

萊布尼茲三角形

難度級別:b; 執行時間限制:1000ms; 執行空間限制:51200kb; **長度限制:2000000b

試題描述

如下圖所示的三角形,請程式設計輸出圖中排在第 n 行從左邊數第 m 個位置上的數。 

輸入一行包括兩個正整數,分別為 n 和 m,兩數間用乙個空格分隔。

輸出乙個如樣例所示格式的分數。

輸入示例

6 2輸出示例

1/30

其他說明

資料範圍:1<= m <= n <= 100.

這道題也是前100道題中為數不多的需要用到演算法解決的題了。所用演算法為:遞推。

遞推大概就類似於找規律,通過對陣列下標的利用最終在對應位置找到結果。

所以,咱們要先找到規律。

經過觀察,我們發現:

下一行的第1、2個數相加就等於上一行的第1個數,

下一行的第2、3個數相加就等於上一行的第2個數……以此類推,

第x行的第a、b個數相加就等於第x-1行的第a個數。同時左右兩邊則為1/1,1/2,1/3……即分母依次增加1。

發現規律後,我們就可以根據它寫**了。

同時有一點特別要注意:位置越靠下的數的分母越大,int會存不下。

#includeusing namespace std;

long long a[105][105],n,m;//越往下分子越大,避免炸掉。

int main()

} printf("1/%lld",a[n][m]);//輸出第n行m列。

return 0;

}

萊布尼茲三角形(OJ0082)

本題適合學過陣列 迴圈的同學學習。相信大家可以很輕鬆找出規律,就是a i j a i 1 j a i 1 j 1 a陣列儲存第i行j列的分數 但是陣列中不方便儲存整個分數的值,用double?精度不夠。由於分子都是1,只儲存分母就可以了,要用long long。int 會爆掉 include inc...

求大三角形中三角形個數

一道筆試程式設計題要求求乙個大三角形中所有小三角形的個數,大約是下面這種情況 首先想到是的將問題由求邊長為n的三角形個數 求邊長為n 1的三角形個數 求邊長為1的三角形個數 1,回溯求得所有三角形個數。但是再仔細一看因為有重疊三角形和倒置的三角形,所以這個方法不可行。接著找到三角形個數由三部分組成 ...

經典演算法 (三)帕斯卡三角形(楊輝三角形)

楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在1654年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。簡介 楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在165...