题目描述 展开形如(a+b)^n表示(a+b)的n次幂的二项式。按a的幂次降序输出各项。如果系数为1或指数为0则省略,指数为1则不输出指数。 输入 第一个正整数k表示测试用例的个数。其后k行,每行一个大于1的整数表示项(a+b)的幂次。 输出 展开后的二项式。展示后的写法如下例所示,注意当系数为1或者指数为0或1时输出格式的特殊性。 样例输入 Copy 10 2 3 4 5 6 7 8 9 10 11 样例输出 Copy a^2+2ab+b^2 a^3+3a^2b+3ab^2+b^3 a^4+4a^3b+6a^2b^2+4ab^3+b^4 a^5+5a^4b+10a^3b^2+10a^2b^3+5ab^4+b^5 a^6+6a^5b+15a^4b^2+20a^3b^3+15a^2b^4+6ab^5+b^6 a^7+7a^6b+21a^5b^2+35a^4b^3+35a^3b^4+21a^2b^5+7ab^6+b^7 a^8+8a^7b+28a^6b^2+56a^5b^3+70a^4b^4+56a^3b^5+28a^2b^6+8ab^7+b^8 a^9+9a^8b+36a^7b^2+84a^6b^3+126a^5b^4+126a^4b^5+84a^3b^6+36a^2b^7+9ab^8+b^9 a^10+10a^9b+45a^8b^2+120a^7b^3+210a^6b^4+252a^5b^5+210a^4b^6+120a^3b^7+45a^2b^8+10ab^9+b^10 a^11+11a^10b+55a^9b^2+165a^8b^3+330a^7b^4+462a^6b^5+462a^5b^6+330a^4b^7+165a^3b^8+55a^2b^9+11ab^10+b^11
时间: 2023-08-03 19:06:40 浏览: 45
下面是一个Python的代码实现,可以实现该题的要求:
```python
def binomial_theorem(n):
ans = []
for i in range(n+1):
row = []
for j in range(i+1):
if j == 0 or j == i:
row.append(1)
else:
row.append(ans[i-1][j-1]+ans[i-1][j])
ans.append(row)
return ans
def format_output(coeff, power):
output = ''
if coeff == 1 and power > 1:
output += 'a'
elif coeff > 1 and power > 1:
output += str(coeff)+'a'
elif coeff == 1 and power == 1:
output += 'a'
elif coeff > 1 and power == 1:
output += str(coeff)+'a'
elif power == 0:
output += str(coeff)
if power > 1:
output += '^'+str(power)
return output
t = int(input())
for _ in range(t):
n = int(input())
binom = binomial_theorem(n)
for i in range(n+1):
coeff = binom[n][i]
power = n-i
if coeff != 0:
output = format_output(coeff, power)
for j in range(i+1, n+1):
coeff = binom[n-j][i]
power = j-i
if coeff != 0:
output += '+'+format_output(coeff, power)
if i == n:
print(output)
else:
print(output, end='+')
print()
```
这段代码首先定义了一个函数 `binomial_theorem`,用于计算杨辉三角。然后定义了一个函数 `format_output`,用于格式化输出每一项的系数和指数。最后读入测试用例的个数,循环读入每个测试用例中的幂次,计算出展开后的二项式并按照要求输出。