Not Pascal Triangle
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:155 测试通过:59
总提交:155 测试通过:59
描述
如果有人问你,三角形
1
1 1
1 2 1
1 3 3 1
的下一行数是什么,你一定会毫不犹豫地说,下一行是“1 4 6 4 1”,因为这是杨辉三角(或者叫做Pascal三角),杨辉三角的每一个数等于它肩上两数的和(每行第一个和最后一个数是1)。
但是这并不是唯一的解,1 4 5 4 1也是一种可能的答案。递推的关系是:每个数都等于两肩的数之积加1 ,除以头顶上的数。例如,第2个数4就等于(1*3+1)/1,第3个数 5 则等于(3*3+1)/2。因此我们可以继续写下去。
1
1 1
1 2 1
1 3 3 1
1 4 5 4 1
1 5 7 7 5 1
……
现在请你编程计算这种新的三角中,第i行,第j个数的值(最顶的1定义为第1行)。
输入
包含多组测试数据,每组测试数据两行,给出以一个制表符隔开的两个整数i和j(1<=j<=i<231)。输入以EOF结束。
输出
对应每一组数据,用单独的一行输出第i行的第j个数。答案保证在32位整数的范围内。
样例输入
1 1
5 3
样例输出
1
5
分析:
—》 猛一看像递推,但是仔细看,递推出来的复杂度过高,无法满足
—》 思路转变: 找规律,推公式
Code:
#include<stdio.h>
int main()
{
int i,j;
while(scanf("%d %d",&i,&j)!=EOF)
{
printf("%d\n",(i-j)*(j-1)+1);
}
return 0;
}