一个正三角形塔,按以下规则叠n层,最高层(第一层)的一个三角形值为1,接下来对于第 i 层的每个三角形,若是正三角形(尖朝上),则它等于同一层与它相邻的两个三角形值的和(若是没有两个相邻的则值为 1);若是倒三角,则它等于第 i-1层与它相邻的一个三角形的值。问第 n 层第 m 个三角形的值为多少(答案对 10^9+7 取余)?输入整数 n,表示第 n 层;和整数 m,表示第 m 个三角形(1<=n<=10^5, 1<=m<=n*2-1)输出第 n 层从左到右第 m 个三角形的值。
这是一个数学问题,将三角塔多写出几层后就可以发现规律。每一行都是两组组合数,正三角与倒三角分别为一组组合数。对于第 k 层,正三角的值依次为 C(k,1) 到 C(k, k)。倒三角的值依次为 C(k-1,1) 到 C(k-1,k-1)。根据题中给出的 m 值,可以判断是正三角还是倒三角,也可以判断是第几个位置。 时间复杂度 与计算组合数的方法有关 空间复杂度 与计算组合数的方法有关 因此输入:3 3 输出:2
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。