给你一个整数 n
,代表你拥有牌的数量。一个 纸牌屋 满足以下条件:
- 一个 纸牌屋 由一行或多行 三角形 和水平纸牌组成。
- 三角形 是由两张卡片相互靠在一起形成的。
- 一张卡片必须水平放置在一行中 所有相邻 的三角形之间。
- 比第一行高的任何三角形都必须放在前一行的水平牌上。
- 每个三角形都被放置在行中 最左边 的可用位置。
返回使用所有 n
张卡片可以构建的不同纸牌屋的数量。如果存在一行两个纸牌屋包含不同数量的纸牌,那么两个纸牌屋被认为是不同的。
示例 1:
输入: n = 16 输出: 2 解释: 有两种有效的纸牌屋摆法。 图中的第三个纸牌屋无效,因为第一行最右边的三角形没有放在水平纸牌的顶部。
Example 2:
输入: n = 2 输出: 1 解释: 这是唯一可行的纸牌屋。
Example 3:
输入: n = 4 输出: 0 解释: 图中的三种纸牌都是无效的。 第一个纸牌屋需要在两个三角形之间放置一张水平纸牌。 第二个纸牌屋使用 5 张纸牌。 第三个纸牌屋使用 2 张纸牌。
提示:
1 <= n <= 500