2022-03-27 20:37:52 +08:00
|
|
|
|
<p>这里有 <code>n</code> 个一样的骰子,每个骰子上都有 <code>k</code> 个面,分别标号为 <code>1</code> 到 <code>k</code> 。</p>
|
|
|
|
|
|
|
|
|
|
<p>给定三个整数 <code>n</code> , <code>k</code> 和 <code>target</code> ,返回可能的方式(从总共<em> </em><code>k<sup>n</sup></code><em> </em>种方式中)滚动骰子的数量,使正面朝上的数字之和等于<em> </em><code>target</code> 。</p>
|
|
|
|
|
|
|
|
|
|
<p>答案可能很大,你需要对 <code>10<sup>9</sup> + 7</code> <strong>取模</strong> 。</p>
|
|
|
|
|
|
|
|
|
|
<p> </p>
|
|
|
|
|
|
|
|
|
|
<p><strong>示例 1:</strong></p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<strong>输入:</strong>n = 1, k = 6, target = 3
|
|
|
|
|
<strong>输出:</strong>1
|
2023-12-09 18:42:21 +08:00
|
|
|
|
<strong>解释:</strong>你扔一个有 6 个面的骰子。
|
|
|
|
|
得到 3 的和只有一种方法。
|
2022-03-27 20:37:52 +08:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p><strong>示例 2:</strong></p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<strong>输入:</strong>n = 2, k = 6, target = 7
|
|
|
|
|
<strong>输出:</strong>6
|
2023-12-09 18:42:21 +08:00
|
|
|
|
<strong>解释:</strong>你扔两个骰子,每个骰子有 6 个面。
|
|
|
|
|
得到 7 的和有 6 种方法:1+6 2+5 3+4 4+3 5+2 6+1。
|
2022-03-27 20:37:52 +08:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p><strong>示例 3:</strong></p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<strong>输入:</strong>n = 30, k = 30, target = 500
|
|
|
|
|
<strong>输出:</strong>222616187
|
|
|
|
|
<strong>解释:</strong>返回的结果必须是对 10<sup>9</sup> + 7 取模。</pre>
|
|
|
|
|
|
|
|
|
|
<p> </p>
|
|
|
|
|
|
|
|
|
|
<p><strong>提示:</strong></p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li><code>1 <= n, k <= 30</code></li>
|
|
|
|
|
<li><code>1 <= target <= 1000</code></li>
|
|
|
|
|
</ul>
|