Brute Force를 이용했다는데 이거 정말 혁명이다!

스택 쌓이는 거 싫어서 루프문으로 처리하는 방법 없을까 고민했는데...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
int GCD(int a, int b)
{
    int r;
    while (b != 0)
    {
        r = a % b;
        a = b;
        b = r;
    }
    return a;
}
int main(void)
{
   int N = 15;
    int M = 6;
   printf("GCD: %d\n", GCD(N, M));
   
   return 0;
}
CodeHighligher


Posted by 슈하렌

2차원 배열에 값을 대입하거나 출력할 때 for문을 한 번만 사용하고도 모든 요소를 참조할 수 있는 방법으로 아래 코드는 5*5 배열을 예시로 설정했다.

#include <stdio.h>

void main(void)
{
	int table[5][5];
	int i;

	for(i=0; i<(sizeof(table)/sizeof(table[0][0])); i++)
	{
		table[i/5][i%5] = i+1;
	}

	for(i=0; i<(sizeof(table)/sizeof(table[0][0])); i++)
	{
		printf("%3d", table[i/5][i%5]);
		if(!((i+1)%5)) printf("\n");
	}
}


Posted by 슈하렌

#include <stdio.h>

int Cal_GCD(int, int);
int Cal_LCM(int, int, int);

void main(void)
{
	int gcd;
	int lcm;
	int a = 15;
	int b = 6;

	gcd = Cal_GCD(a, b);
	lcm = Cal_LCM(a, b, gcd);
	printf("GCD : %d, LCM : %d\n", gcd, lcm);
}

// 유클리드 호제법을 이용한 GCD 구하는 함수
int Cal_GCD(int A, int B)
{
	if(B==0) return A;
	else Cal_GCD(B, A%B);
}

// GCD를 이용해 LCM을 구하는 함수
int Cal_LCM(int A, int B, int GCD)
{
	return A*B/GCD;
}

Posted by 슈하렌


티스토리 툴바