이진수 -> 10진수 변환

#include 
#include 

int main(void) {
	int a;
	int final = 0;


	printf("2진수를 입력하시오 : ");
	scanf("%d", &a);

	int what = floor(log10(abs(a))) + 1;
	for (int i = 1; i <= what; i++) {
		final += ((a % (int)pow(10, i) / pow(10, i - 1) * pow(2, i - 1)));
	}

	printf("\n>>> 이진수 %d를 10진수로 바꾸면 %d입니다.\n\n\a", a, final);

	return 0;
}



팩토리얼(factorial) 계산

int main(void) {
	int choice,sum = 1;
	printf("몇의 팩토리얼을 계산할까요?: ");
	scanf("%d", &choice);

	for (int i = 1; i <= choice; i++) {
		sum = sum * i;
	}
	printf("\n\n>>> %d! = %d\n\n\a",choice, sum);
}



더 큰 수 printf

int main() {
	int a, b;
	printf("첫번째 숫자를 입력하세요: ");
	scanf("%d", &a);

	printf("\n");

	printf("두번째 숫자를 입력하세요: ");
	scanf("%d", &b);

	printf("\n\n더 큰 값은 %d\n\n", getMax(a, b));
}

int getMax(int a, int b) {
	int max = a > b ? a : b;
	return max;
}



구구단 (단, 곱 선택)

int main() {
	int dan, count = 9, num=1, res;
	printf("몇 단을 입력할까요? : ");
	scanf("%d", &dan);

	printf("몇 곱까지 표시할까요? : ");
	scanf("%d", &count);
	printf("\n");

	if (count <= 0) count = 9;

	while (num <= count) {
		res = dan * num;
		printf(">>> %d x %d = %d\n", dan, num, res);
		num++;
	}
	printf("\n\a");
}



절대값 계산 (abs)

int main() {
	int num, abs;
	printf("숫자를 입력하세요: ");
	scanf("%d", &num);
	abs = num > 0 ? num : num*(-1);
	printf("\n>>> %d의 절대값 = %d\n\n", num, abs);
}



피보나치 (Fibonacci) 수열 표시

//피보나치 수열 (Fibonacci Sequence): 0, 1, 1, 2, 3, 5, 8 ... 앞의 2개를 더한 것이 다음 값
int main() {
	int count, t1 = 0, t2 = 1;

	printf("몇 번째까지 표시할까요? (양의 정수): ");
	scanf("%d", &count);
	printf("\n");

	for (int i = 1; i <= count; i++) {

		if (i == 1) {
			printf(">>> %d, ", t1);
			continue;
		}
		if (i == 2) {
			printf("%d, ", t2);
			continue;
		}

		int next = t1 + t2;

		t1 = t2;
		t2 = next;

		if (i == count) {
			printf("%d", next);
		}
		else {
			printf("%d, ", next);
		}
	}
	printf("\n\n\a");
	return 0;
}



GCD(Greatest Common Divisor) 최대공약수 구하기

int main() {
	int x, y, gcd;
	printf("두 수를 입력하세요.: ");
	scanf("%d %d", &x, &y);

	for (int i = 1; i <= x && i <= y; i++) {
		if (x % i == 0 && y % i == 0) {
			gcd = i;
		}
	}
	printf("\n%d과(와) %d의 최대공약수 = %d\n\a\n", x, y, gcd);
}


LCM (Lowest Common Mutiple) 최소공배수 구하기

int main() {
	int x, y, gcd, lcm;

	printf("두 수를 입력하세요: ");
	scanf("%d %d", &x, &y);

	lcm = (x>y) ? x : y;

	while (1)
	{
		if (lcm%x == 0 && lcm%y == 0)
		{
			printf("\n%d와(과) %d의 LCM = %d\n\n", x, y, lcm);
			break;
		}
		lcm++;
	}

	return 0;
}


GCM 과 LCM 관계:  (n1 * n2) / GCM = LCM


저작자 표시 비영리 변경 금지
신고

티스토리 툴바