47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: 5900f4861000cf542c50ff98
 | |
| title: '問題 281: ピザのトッピング'
 | |
| challengeType: 5
 | |
| forumTopicId: 301932
 | |
| dashedName: problem-281-pizza-toppings
 | |
| ---
 | |
| 
 | |
| # --description--
 | |
| 
 | |
| ピザ (完全な円) を $m·n$ 枚のスライスに等分し、各スライスにちょうど 1 つずつトッピングを載せます。
 | |
| 
 | |
| ちょうど $n$ 枚のスライス ($n ≥ 1$) にそれぞれのトッピングを使って、$m$ 種類のトッピング ($m ≥ 2$) でピザにトッピングを載せる方法が何通りあるかを、$f(m,n)$ で表します。 反転させたものは相異なるとみなされますが、回転させたものは同一とみなされます。
 | |
| 
 | |
| 例えば、$f(2,1) = 1$, $f(2,2) = f(3,1) = 2$, $f(3,2) = 16$ です。 $f(3,2)$ を下に示します。
 | |
| 
 | |
| <img class="img-responsive center-block" alt="3 種類のトッピングを各 2 枚のスライスに載せる 16 通りの方法を示すアニメーション" src="https://cdn.freecodecamp.org/curriculum/project-euler/pizza-toppings.gif" style="background-color: white; padding: 10px;" />
 | |
| 
 | |
| $f(m,n) ≤ {10}^{15}$ となる $f(m,n)$ の総和を求めなさい。
 | |
| 
 | |
| # --hints--
 | |
| 
 | |
| `pizzaToppings()` は `1485776387445623` を返す必要があります。
 | |
| 
 | |
| ```js
 | |
| assert.strictEqual(pizzaToppings(), 1485776387445623);
 | |
| ```
 | |
| 
 | |
| # --seed--
 | |
| 
 | |
| ## --seed-contents--
 | |
| 
 | |
| ```js
 | |
| function pizzaToppings() {
 | |
| 
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| pizzaToppings();
 | |
| ```
 | |
| 
 | |
| # --solutions--
 | |
| 
 | |
| ```js
 | |
| // solution required
 | |
| ```
 |