설명 ¶
cpp로 ì €ìž¥í•˜ëŠ” ê±´ 없는 모양...
ë‚´ 코드ì�˜ ìš”ì �ì�€ 매우 간단.
� 숫�� 배열� �딴 �으로 만드는게 ��트.
01234567890 000010000 1 000101000 2 001020100 3 010303010 4 104060401 5
맨 윗줄 가운ë�°ì™€ 맨 마지막줄 ì–‘ ë��ì�„ 1로 초기화하ê³
나머지는 �반 파스칼� 삼�형 구하는 것처럼 다 산수로
위� 있는 � 숫�를 �해서 계산.
수학공�� 사용했다면 소스코드� 길�가 � 줄어들었� 것.
#include <iostream>
#include <stdio.h>
#include <new>
using namespace std; //new 가 어디 �함�는지 몰�서
//using namespace std 그냥 사용했�..
int main() {
int **arr, param = 0, col = 0;
cout << "How many lines?? : ";
cin >> param;//�� 수.
col = 2*param-1; //ì •ë ¬í–ˆì�„ 때 ì�´ì�˜ê²Œ ë³´ì�´ëŠ” 효과와,
//계산� 편하게 하기 위한 잔머리.
//그러나 불필요한 공간� 좀 많� 필요로 하는...
//필요한 ë§Œí�¼ë§Œ ë�™ì �ë°°ì—´.
arr = new int* [param];
for(int i = 0;i<param;i++)
arr[i] = new int[col];
//0으로 모� 초기화.
//계산� 편해진다.
for(int i = 0;i<param;i++)
for(int j = 0;j<col;j++)
arr[i][j] = 0;
arr[0][param-1] = arr[param-1][0] = arr[param-1][col-1] = 1;
//여기가 계산하는 부분.
for(int i = 1;(param != 1) & (i<param);i++)
for(int j = 1;j<col-1;j++)
arr[i][j] = arr[i-1][j-1] + arr[i-1][j+1];
//보기 좋게 ì¶œë ¥.
for(int i = 0;i<param;i++){
for(int j = 0;j<col;j++){
if(arr[i][j] == 0) {
cout << ' ';
continue;
}
cout << arr[i][j];
}
cout << endl;
}
//new로 잡아준 메모리를 다시 반환.
for(int i = 0;i<col;i++)
delete arr[i];
delete arr;
return 0;
}
ê°œì„ í• ì � ¶
- ì�¼ë‹¨ 불필요한 공간ì�„ ì“°ì§€ ì•Šê³ í• ìˆ˜ 있ë�„ë¡� 해야 한다.
- ë‚´ê°€ ì‚¬ìš©í• ìˆ˜ 있는 함수가 존재하는 ì§€ 알아야 한다.
- �중 for loop 구조가 너무 많� 쓰였다.
ëŠ�ë‚€ ì � ¶
autoit 하다가 cpp í•˜ë ¤ë‹ˆê¹Œ ì•„ 나... 빡세네...
autoit 조낸 쉽다... 편하기ë�„ 조낸 íŽ¸í•˜ê³ ...
ë‹´ì—� 한번 세미나 í•´ë´�ì•¼ì“°ê² ë‹¤.










