본문 바로가기

프로그래밍 언어/C언어23

GCD(Greatest Common Divisor), LCM(Least Common Multiple ) 최대공약수 ,GCD(Greatest Common Divisor) : 두 자연수가 공통으로 갖는 약수들 중에서 가장 큰 값 최소공배수, LCM(Least Common b) a와 b의 최대공약수 == b와 r의 최대공약수 이러한 성질을 이용하여 b를 r로 나눈 나머지 r'를 구하고 이러한 과정을 반복하여 나머지 r'가 0되었을때 나누는 수가 a와 b의 최대공약수이다. 하단 코드 내 Euclidean함수의 if(b == 0)은 나머지 r' == 0인 경우, 나누는 값을 리턴함으로써 최대공약수를 return하고 있다. 또한 재귀함수(recursive function)을 이용하여 나머지 값을 b인자(나누는 인자)로 받고 있으며 이는 그 다음번에는 나눠지는 인자로 들어간다. 중간에 a > b인 전제조건을 충족시키기.. 2024. 4. 23.
재귀함수와 증감연산자 Multiplication Tables with Recursion Goal Create a program to generate and print the multiplication table up to 10 for a given number N using recursion. Concept Explanation Multiplication tables are a basic mathematical tool used for learning multiplication. They list the products of a number series multiplied by integers from 1 to 10. Recursion is a programming technique where a function calls .. 2024. 4. 8.
Hanoi Tower Recursive function,재귀함수 : 재귀(recursion)란 같은 형태의 보다 작은 입력을 지닌 자기 자신을 호출하는 것이며 이러한 재귀적인 호출을 사용하는 함수를 재귀함수라고 한다. Hanoi tower : n개를 A에 쌓여있는 원반들을 순서를 지키면서 C로 이동할 때 최소의 이동횟수로 옮는 가짓 수 or 최소의 이동횟수로 옮길 때 원반을 옮기는 순서를 구하여라 조건) - 한 번에 움직일 수 있는 원반은 기둥 위에 놓인 원반 하나뿐임 - 어떤 원반 위에 그보다 더 큰 원반을 쌓을 수 없음 첫 번째 재귀: n - 1개의 원반을 A에서 B로 옮김 / 두 번째 재귀: n-1개의 원반을 B에서 C로 옯긴다 -> 두 재귀는 옮기는 원반의 개수는 같지만 원반을 움직이는 출발지와 목적지가 다름 -> 경.. 2024. 3. 31.
혼자공부하는C언어_도전실전예제_Chapter19 입력 , 사칙연산 매크로함수를 이용한 사칙연산 계산기 프로그램 #include #define INPUT_FUNC(a, sign, b) scanf("%d %c %d", &a, &sign, &b) #define ADD(a, b) ((a)+(b)) #define SUB(a, b) ((a)-(b)) #define MUL(a, b) ((a)*(b)) #define DIV(a, b) ((a)/(b)) void main(void) { int a, b, res; int check; char sign; while (1) { printf("> 수식 입력(종료 Ctrl + Z) : "); check = INPUT_FUNC(a, sign, b); if (check 2024. 2. 13.