2018. 12. 23. 22:47 C,C++ 코드

하노이 탑 코드

하노이 탑 코드 //재귀 함수와 비재귀 함수 버전
#include <iostream>
#include <stack>
using namespace std;

void move(int no, int x=1, int y=3){
	if(no>1)
		move(no-1,x,6-x-y);
	cout<<"원반["<<no<<"]를(을) "<<(char)('A'+x-1)<<"기둥에서 "<<(char)('A'+y-1)<<"기둥으로 옮김.\n";
	if(no>1)
		move(no-1,6-x-y,y);
}

void move1(int no, int x=1, int y=3){
	stack<int> s;
	while(1){
		while(no>1){
			s.push(no),s.push(x),s.push(y);
			no=no-1,y=6-x-y;
		}
		cout<<"원반["<<no<<"]를(을) "<<(char)('A'+x-1)<<"기둥에서 "<<(char)('A'+y-1)<<"기둥으로 옮김.\n";
		if(s.size()){
			y=s.top(),s.pop();
			x=s.top(),s.pop();
			no=s.top(),s.pop();
			
			cout<<"원반["<<no<<"]를(을) "<<(char)('A'+x-1)<<"기둥에서 "<<(char)('A'+y-1)<<"기둥으로 옮김.\n";
			
			no=no-1,x=6-x-y;
		}
		else
			break;
	}
}

int main() {
	// your code goes here
	cout<<"재귀 버전\n";
	move(4);
	cout<<"비재귀 버전\n";
	move1(4);
	return 0;
}


'C,C++ 코드' 카테고리의 다른 글

일반템 스타포스 시뮬  (0) 2018.12.29
single linked list  (0) 2018.12.25
인라인 코드 테스트  (2) 2018.12.22
진자 운동 코드  (0) 2018.12.22
퀵 정렬 함수  (0) 2018.12.16
Posted by Semi Developer

Info text inline code testing " int main(void){} " maybe it works



Block Code:

<script>
    alert('block code');
</script>

<!--테스트 용도-->


'C,C++ 코드' 카테고리의 다른 글

single linked list  (0) 2018.12.25
하노이 탑 코드  (0) 2018.12.23
진자 운동 코드  (0) 2018.12.22
퀵 정렬 함수  (0) 2018.12.16
문자열 알고리즘 시간 측정 코드  (0) 2018.12.16
Posted by Semi Developer

2018. 12. 22. 00:05 C,C++ 코드

진자 운동 코드

#include <cmath>
//M_PI 상수 포함
using namespace std;
void printpos(const double maxangle, const int length){
	//maxangle은 진자운동의 진폭, length는 줄의 길이
	//줄의 시작점은 (0, 0)으로 가정
	//오른쪽 정점부터 시작 가정
	double Angle=-maxangle;
	double VAngle=0;
	for(int i=0;i<100;i++){
		cout<<i+1<<". 현재 각도(라디안) : "<<2*M_PI*Angle<<", 구의 좌표(x, y) : ("<<
		-sin(2*M_PI*Angle)*length<<", "<<cos(2*M_PI*Angle*length)<<")\n";
		if(abs(VAngle*2*M_PI) <= 0.01){
			cout<<"진자 운동의 정점입니다.\n";
			VAngle = 0;
		}
		cout<<"현재 각속도 : "<<VAngle*2*M_PI<<'\n';
		VAngle-=1.5/length*sin(2*M_PI*Angle);
		Angle+=VAngle;
	}
}
int main() {
	// your code goes here
	double ma;
	int len;
	cin>>ma>>len;
	printpos(ma, len);
	return 0;
}

'C,C++ 코드' 카테고리의 다른 글

single linked list  (0) 2018.12.25
하노이 탑 코드  (0) 2018.12.23
인라인 코드 테스트  (2) 2018.12.22
퀵 정렬 함수  (0) 2018.12.16
문자열 알고리즘 시간 측정 코드  (0) 2018.12.16
Posted by Semi Developer
이전버튼 1 2 3 이전버튼

블로그 이미지
C++ 코드 저장용도
Semi Developer

태그목록

Yesterday
Today
Total

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함