45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | id: 5900f3e01000cf542c50fef2 | ||
|  | title: '問題 114: ブロックの組み合わせを数え上げる (1)' | ||
|  | challengeType: 5 | ||
|  | forumTopicId: 301740 | ||
|  | dashedName: problem-114-counting-block-combinations-i | ||
|  | --- | ||
|  | 
 | ||
|  | # --description--
 | ||
|  | 
 | ||
|  | 長さ 7 単位の 1 列に、長さ 3 単位以上の赤ブロックが置かれています。2 つの赤ブロック (長さが異なっていても良い) がある場合、それらは少なくとも 1 つの黒マスで区切られています。 このようにブロックを置く方法はちょうど 17 通りあります。 | ||
|  | 
 | ||
|  | <img class="img-responsive center-block" alt="長さ 7 単位の列に長さ 3 単位以上のブロックを置く方法" src="https://cdn.freecodecamp.org/curriculum/project-euler/counting-block-combinations-i.png" style="background-color: white; padding: 10px;" /> | ||
|  | 
 | ||
|  | 長さ 50 単位の 1 列にブロックを置く方法は何通りありますか。 | ||
|  | 
 | ||
|  | **注:** 上の例ではあり得ませんが、通常はブロックの大きさが混在することが許されます。 例えば、長さ 8 単位の 1 列に赤 (3)、黒 (1)、赤 (4) を使用できます。 | ||
|  | 
 | ||
|  | # --hints--
 | ||
|  | 
 | ||
|  | `countingBlockOne()` は `16475640049` を返す必要があります。 | ||
|  | 
 | ||
|  | ```js | ||
|  | assert.strictEqual(countingBlockOne(), 16475640049); | ||
|  | ``` | ||
|  | 
 | ||
|  | # --seed--
 | ||
|  | 
 | ||
|  | ## --seed-contents--
 | ||
|  | 
 | ||
|  | ```js | ||
|  | function countingBlockOne() { | ||
|  | 
 | ||
|  |   return true; | ||
|  | } | ||
|  | 
 | ||
|  | countingBlockOne(); | ||
|  | ``` | ||
|  | 
 | ||
|  | # --solutions--
 | ||
|  | 
 | ||
|  | ```js | ||
|  | // solution required | ||
|  | ``` |