提示信息:
杨辉三角就是一个用数排列起来的三角形(如下图),杨辉三角规则如下:
1)每行第一个数和最后一个数都为1,其它每个数等于它左上方和右上方的两数之和;
2)第n行有n个数。
注意:“列”指的是如图所标注的斜列。
编程实现:
小青对杨辉三角的特点和规律研究得很明白,现要考察你对杨辉三角的熟悉程度,首先告知你这是一个N行的杨辉三角,然后又告知了两个数值X和Y(X表示第几行,Y表示第几列),让你根据杨辉三角的特点和观察到的规律解决以下两个问题。
1)第X行第Y列对应的数是多少;
2)求出N行的杨辉三角中第Y列中所有数的和。
例如:N=5,5行的杨辉三角如下图:
X=5,Y=3,第5行第3列对应的数为6;第3列中所有数的和为10(10 = 6 + 3 + 1)。
输入描述
第一行输入一个正整数N(2≤N≤30),表示杨辉三角的行数
第二行输入两个正整数X和Y(1≤Y≤X≤N),分别表示第X行和第Y列,正整数之间以一个英文逗号隔开
输出描述
输出两个整数,分别表示N行的杨辉三角中第X行Y列对应的数,及第Y列上所有数的和,两个整数之间以一个英文逗号隔开
样例输入
5
5,3
样例输出
6,10
n=int(input())
x,y=eval(input())
ns=[[1],[1,1]]
if x>2:
for i in range(2,x):
ns.append([])
for j in range(i+1):
ns[i].append(0)
if j==0 or j==i:
ns[i][j]=1
else:
ns[i][j]=ns[i-1][j-1]+ns[i-1][j]
s=0
for row in range(y-1,x):
s+=ns[row][y-1]
print(ns[x-1][y-1],s,sep=',')