SSL 1352 二項式乘方展開式

2021-10-23 12:02:20 字數 1153 閱讀 7949

時間限制:1000ms

記憶體限制:256000kb光光最近在研究乙個問題:在整式的乘法中,我們知道(a+b)1=a+b,(a+b)2=a2+2ab+b2,等等,這些都可以用簡單的手算求得。但是我們如果要求的(a+b)^n展開式,就不容易很快手算了。光光需要你去幫助他,這個時候應該如何去解答這個問題?

輸入僅一行,為n 的值。

輸出只需輸出一行表示式,格式為:

(a+b)^ n=*a^ n+*a^ (n-1)b+*a^ (n-2)b^ 2+…+*b^n

其中*為係數。如果係數為1,則需要省略係數;如果次數為1,則需要省略次數;如果次數為0,則需要省略;如果係數為0,則需要省略這一項。注意:

前面(a+b)^n 的次數是必有的。

(a+b)^ 5=a^ 5+5a^ 4b+10a^ 3b^ 2+10a^ 2b^

3+5ab^ 4+b^5

30%的資料中,n<=18;

60%的資料中,n<=34;

100%的資料中,n<=66。

每一項之間有規律,係數為楊輝三角第n+1行的數,第1項a的次數為n,b的次數為0,往後每一項a的次數為上一項a的次數減1,b的次數為上一項b的次數加1。計算楊輝三角第66行時也不需要用高精加,但要用long long。計算楊輝三角時用迭代法只需一維陣列。

#include

#include

using

namespace std;

long

long n,y[

200]

;//定義儲存楊輝三角第n+1行的陣列

void

yhsj()

//計算楊輝三角第n+1行

return;}

void

work()

//輸出答案中等號右邊部分

printf

("+%lldab^%lld+b^%lld"

,y[n-1]

,n-1

,n);

// 輸出答案的後2項。

return;}

intmain()

if(n==2)

yhsj()

;//計算楊輝三角第n+1行

work()

;//輸出答案中等號右邊部分

return0;

}

二項式係數

任務描述 根據二項式定理,對於給定的二項式 a b 的n次方可以展開為c a的k次方 b的 n k 次方,k 0,1,2,n。現在要求出二項式的各個項的係數c。輸入 第一行包含乙個整數k 1 k 33 表示測試用例的個數。每個測試用例包含乙個整數n 1 n 33 輸出 按公式中的順序輸出各個二項式係...

二項式定理

在初等代數中,二項式定理 英語 binomial theorem 描述了二項式的冪的代數展開。根據該定理,可以將兩個數之和的整數次冪諸如 x y n 展開為類似 axby c 項之和的恒等式,其中b c均為非負整數且b c n。係數a是依賴於 n 和b的正整數。當某項的指數為0時,通常略去不寫。例如...

二項式反演

先從反演原理出發,假如存在兩個數列 f,g 我們知道 f n sum limits n a times g i 則 g n sum limits n b times f i 恆成立,那麼我們由 f 推出 g 的過程叫做反演。下面我們來 一下上面兩個式子恆成立的條件,將左邊帶入右邊,那麼有 begin...