U E D R , A S I H C RSS

파스칼삼각형/윤종하

Difference between r1.4 and the current

@@ -25,9 +25,9 @@

for(i=0;i<line;i++)
{
for(j=0;j<line-i;j++) std::cout<<" ";
for(j=0;j<=i;j++) std::cout<<combi(i,j)<<" ";
std::cout<<std::endl;
for(j=0;j<line-i;j++) cout<<" ";
for(j=0;j<=i;j++) cout<<combi(i,j)<<" ";
cout<<endl;
}

return 0;
@@ -56,14 +56,4 @@

n=input("줄 수")
pascal(n)
}}}
 
알고리즘은 쉬운데 파이썬은 개행이 자동인데다가 공백도 자동으로 들어가서 힘드네요 ㅠ
암튼 수학문제는 수학책이 진리인듯요 ㅋ
 
그리고 확실히 C++보단 Python이 코딩하기는 쉬운거 같습니다.
Python의 자동개행, 자동공백 문제 해결하는 방법 찾느라 오래걸려서 그렇지. C++로는 길게 짜야되는데 Python으로짜니까 간단히 끝나네요. 문법에만 적용된다면 금방금방 짜는게 가능할 것 같습니다
 
또 실행할 때 큰 수를 치면 C++은 잘려버려서 연산이 안 되지만, Python은 열심히 연산을 해주는 차이점도 보이구요.
그나저나 속도는 C++이 Python보다는 확실히 빠르네요



C++
#include<iostream>

using namespace std;

int fac(int n)
{
	if(n==0) return 1;
	else return n*fac(n-1);
}

int combi(int n,int k)
{
	return fac(n)/(fac(k)*fac(n-k));
}

int main()
{
	cout<<"몇 줄?";
	int line;
	cin>>line;

	int i,j;

	for(i=0;i<line;i++)
	{
		for(j=0;j<line-i;j++)	cout<<" ";
		for(j=0;j<=i;j++)	cout<<combi(i,j)<<" ";
		cout<<endl;
	}
	
	return 0;
}


- Python
def fac(n):
    if(n==0):
        return 1
    else:
        return n*fac(n-1)

def combi(n,k):
    return fac(n)/(fac(k)*fac(n-k))

def pascal(n):
    for i in range(0,n,1):
        for j in range(0,n-i,1):
            print "",
        for j in range(0,i+1,1):
            print combi(i,j),
        print "\n"

n=input("줄 수")
pascal(n)
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:23
Processing time 0.0479 sec