algorism
-
재귀함수 - 2진수출력algorism 2020. 1. 10. 19:32
입력값을 받고 그 값을 2진수로 출력하여라 단 이때 재귀함수를 사용하여 출력하시오. 입력예제 11 출력예제 1011 #include #include using namespace std; int N = 0; int a=1; void divi(int num) { int tmp = num; if (num ==1)return; else { num = num / 2; divi(num); a = tmp % 2; if (a == 0)//다 나눠졌을때 만 나눈 값 출력 { cout N; divi(N); }
-
재귀함수 알고리즘-STACK으로algorism 2020. 1. 10. 19:16
1.N의값을 3을 받는다 그러면 print(3)함수가 호출된다 2.num이 3이기때문에 else로 빠지고 print(3-1), 즉 print(2)가 호출된다 이때, print(3)-10라인까지 수행했다는것을 stack에 기록함 3.print(2)가 호출되고 if문을 넘고 else로빠져 print(2-1)즉 print(1)이 수행이때도 마찬가지로 print(2)-10라인까지 수행했다는것을 stack에 기록 4.print(1)가 호출되고 또 다시 print(1-1)즉 print(0)이 호출됨 마찬가지로 print(1)-10을 stack에 기록 5.print(0)호출후 return되고 함수로 종료됨 6.그후 수행하지 못한 즉 stack에 쌓여있는 함수들을 차곡차곡 하나씩 빼면서 수행해줌 1)print(1) -..
-
소인수 분해 응용algorism 2020. 1. 10. 15:23
임의의 N에 대하여 N!은 1부터 N까지의 곱을 의미한다. 이는 N이 커짐에 따라 급격하게 커진 다. 이러한 큰 수를 표현하는 방법으로 소수들의 곱으로 표현하는 방법이 있다. 먼저 소수는 2, 3, 5, 7, 11, 13... 순으로 증가함을 알아야 한다. 예를 들면 825는 (0 1 2 0 1)로 표현이 가능한데, 이는 2는 없고 3은 1번, 5는 2번, 7은 없고, 11은 1번의 곱이라는 의미이다. 101보 다 작은 임의의 N에 대하여 N 팩토리얼을 이와 같은 표기법으로 변환하는 프로그램을 작성해 보자. 출력은 아래 예제와 같이 하도록 한다. ▣ 입력설명 첫 줄에 자연수 N(3 N; vector a(N+1);//동적배열 할당 for (int i = 2; i
-
초당 타이머algorism 2020. 1. 10. 14:37
악기를 연습하기 위해 연주자들은 타이머를 사용하여 연습을 하게된다 아버지께서 드럼을 치셔서 드럼 타이머 프로그램을 제작한다고 하셔서 소스코드를 만들어보라고 해서 만들어보았다. #include #include #include #include using namespace std; int main() { int time; clock_t start, end; cin >> time; while (1) { start = clock();//시간 시작 for (int i = 0; i < 5; i++) { Sleep(time * 200);// } end = clock(); Beep(260, 1000);//1000이 1초, 260은 도 cout
-
마라톤 경주algorism 2020. 1. 9. 19:04
KSEA 장거리 달리기 대회가 진행되어 모든 선수가 반환점을 넘었다. 각 선수의 입장에서 자 기보다 앞에 달리고 있는 선수들 중 평소 실력이 자기보다 좋은 선수를 남은 거리 동안 앞지 르는 것은 불가능하다. 반대로, 평소 실력이 자기보다 좋지 않은 선수가 앞에 달리고 있으면 남은 거리 동안 앞지르는 것이 가능하다. 이러한 가정 하에서 각 선수는 자신이 앞으로 얻을 수 있는 최선의 등수를 알 수 있다. 각 선수의 평소 실력은 정수로 주어지는데 더 큰 값이 더 좋은 실력을 의미한다. 현재 달리고 있는 선수를 앞에서 부터 표시했을 때 평소 실력이 각각 2, 8, 10, 7, 1, 9, 4, 15라고 하면 각 선수가 얻을 수 있는 최선의 등수는 (같은 순서로) 각각 1, 1, 1, 3, 5, 2, 5, 1이 된..
-
Jolly Jumpersalgorism 2020. 1. 9. 17:14
N개의 정수로 이루어진 수열에 대해 서로 인접해 있는 두 수의 차가 1에서 N-1까지의 값을 모두 가지면 그 수열을 유쾌한 점퍼(jolly jumper)라고 부른다. 예를 들어 다음과 같은 수열에 서 1 4 2 3 앞 뒤에 있는 숫자 차의 절대 값이 각각 3 ,2, 1이므로 이 수열은 유쾌한 점퍼가 된다. 어떤 수열이 유쾌한 점퍼인지 판단할 수 있는 프로그램을 작성하라. ▣ 입력설명 첫 번째 줄에 자연수 N(3 N; if (N >= 3 && N > arr[i]; } for (int i = 0; i arr[i + 1]) { result[count] = arr[i] - arr[i + 1]; count++; } else if (arr[i] < arr[i + 1]..