U E D R , A S I H C RSS

파스칼삼�형/sksmsvlxk

설명

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 조낸 쉽다... 편하기� 조낸 편하고...

담� 한번 세미나 해�야쓰겠다.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:23
Processing time 0.0040 sec