bjfuOJ 1085 Not Pascal Triangle

Not Pascal Triangle

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交: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)

输入

包含多组测试数据,每组测试数据两行,给出以一个制表符隔开的两个整数ij(1<=j<=i<231)。输入以EOF结束。

输出

对应每一组数据,用单独的一行输出第i行的第j个数。答案保证在32位整数的范围内。

样例输入

1 1
5 3

样例输出

1
5



分析:

—》 猛一看像递推,但是仔细看,递推出来的复杂度过高,无法满足

—》 思路转变: 找规律,推公式


Code:

#include

 int main()
 {
     int i,j;
     while(scanf("%d %d",&i,&j)!=EOF)
     {
         printf("%d\n",(i-j)*(j-1)+1);
     }

     return 0;
 } 








你可能感兴趣的:(找规律,====ACM算法学习====)