반응형
#include <stdio.h>
void main()
{
int n, k;
n = 20;
k = 20;
int ** B = new int *[n];
for (int i = 0; i < n; i++)
{
B[i] = new int[k];
}
for (int i = 0; i < n; i++)
{
int min = 0;
if (i < k) min = i + 1; //min=i일때 i가 0이면 0번반복이되게되는걸 막음.
else min = k;
for (int j = 0; j < min; j++)
{
if (j == 0 || j == i)
B[i][j] = 1;
else
B[i][j] = B[i - 1][j - 1] + B[i - 1][j];
printf("%d", B[i][j]);
}
printf("\n");
}
}
#include <stdio.h>
void main()
{
int k;
k = 5;
int * B = new int[k];
int * C = new int[k];
//배열의 모든 성분 0으로, 첫번째원소는 1로 초기화
for (int j = 0; j < k; j++)
{
B[0] = 1;
B[j] = 0;
}
for (int j = 0; j < k; j++)
{
if (j == 0)
B[j] = 1; //첫번째원소는 1
else
{
for (int t = 1; t < k; t++) //나머지원소는 이 규칙을 따르되
{
B[t] = B[t] + B[t - 1]; //2항부터 모든원소는 그 전의 자기자신과 자기전자리의 성분의 합이고
//문제점: 배열이 하나라 아마 그 전단계를 기억할 방법이 필요함(행렬C를 만든다던지)
if (t + 1 > (j + 1) / 2) //분기점을 기준으로 이항계수의 대칭성을 이용한다
B[t] = B[j - t];
}
}
}
for (int j = 0; j < k; j++)
printf("%d \t", B[j]);
printf("\n");
}
반응형