プログラミング入門II 宿題 2019.07.01

Back


(a + b)n を展開した時の各係数を以下のようにnの値ごとに表示するプログラムを2次元配列を用いて作成しましょう.

My student number: s186099

 1:                     1   1 
 2:                   1   2   1 
 3:                 1   3   3   1 
 4:               1   4   6   4   1 
 5:             1   5  10  10   5   1 
 6:           1   6  15  20  15   6   1 
 7:         1   7  21  35  35  21   7   1 
 8:       1   8  28  56  70  56  28   8   1 
 9:     1   9  36  84 126 126  84  36   9   1 
10:   1  10  45 120 210 252 210 120  45  10   1 

----------------------------

なお,結果の出力では必ず最初の行に自分の学生番号を,最後にハイフンによるラインをつけること.無い場合には減点するので注意.

各係数は二項定理により求められますが,ややこしいことは考えなくても,上の2つの値の和になることはご存知でしょう.

最初の1次の係数の2つの1は自分で与えます.また,両端の1と内側の和になっている部分は分けて考えます.


	int i, j, binary[10][11];
	
	binary[0][0] = 1;
	binary[0][1] = 1;
解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がC言語のプログラムとなっていますので, cc コマンドを実行して,コンパイルエラーの無いことを確認してから提出してください.

指定の解答用紙を使用していない,コンパイルエラーが出る,実行時に警告が出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください.


解答例

// ************************************************** 
//                                                    
//      プログラミング入門II レポート課題                                    
//      2019.07.01                                    
//                                                    
// ************************************************** 
//                                                    
//      学生番号:                                     
//                                                    
//      氏名:                                         
//                                                    
// ************************************************** 
//                                                    
//      
              
#include <stdio.h>

int main(void)
{
	int i, j, binary[10][11];
	
	printf("My student number: s186099\n\n");
	
/*	for(i=0; i<=9; i++)
	{
		for(j=0; j<=10; j++)
		{
			binary[i][j] = 0;
		}
	}*/
	
	binary[0][0] = 1;
	binary[0][1] = 1;
	
	for(i=1; i<=9; i++)
	{
		binary[i][0] = 1;
		
		for(j=1; j<=i; j++)
		{
			binary[i][j] = binary[i-1][j-1] + binary[i-1][j];
		}
		
		binary[i][i+1] = 1;
	}
	
	for(i=0; i<=9; i++)
	{
		printf("%2d: ", i + 1);
		
		for(j=0; j<=8-i; j++)
		{
			printf("  ");
		}
		
		for(j=0; j<=i+1; j++)
		{
			printf("%3d ", binary[i][j]);
		}
		
		printf("\n");
	}
	
	printf("\n----------------------------\n\n");
}


Back