#32. [백준_C언어] 2908 : 상수

 

 입력 코드 

#include <stdio.h>

main() {
	int A, B;
	scanf("%d %d", &A, &B);

	int rA = 0, rB = 0;

	while (A != 0) {
		rA *= 10;
		rA += A % 10;
		A /= 10;
	}
	while (B != 0) {
		rB *= 10;
		rB += B % 10;
		B /= 10;
	}
	
	if (rA > rB)
		printf("%d\n", rA);
	else
		printf("%d\n", rB);
}

 

 코드 설명 

#반복문 #조건문 #배열 #정수거꾸로출력하기

#include <stdio.h>

main() {
	int A, B;
	scanf("%d %d", &A, &B);

	int Anum[3], Bnum[3];

	int i, j, ans;
	for (i = 0; i < 3; i++) {
		Anum[i] = A % 10;
		A = A / 10;
	}
	for (j = 0; j < 3; j++) {
		Bnum[j] = B % 10;
		B = B / 10;
	}

	for (i = 0; i < 3; i++) {
		if (Anum[i] > Bnum[i])
			ans = Anum;
	}
	
	printf("%d\n", ans);
}

처음에는 A, B 두 수를 입력받고 거꾸로 읽는 수를 배열을 선언해서 몫과 나머지를 이용해서 만들려고 했다. 그런데 그렇게 하니까 마지막에 두 수의 크기를 비교하는 부분에서 너무 복잡해질 것 같았다.

#include <stdio.h>

main() {
	int A, B;
	scanf("%d %d", &A, &B);

	int rA = 0, rB = 0;

	while (A != 0) {
		rA *= 10;
		rA += A % 10;
		A /= 10;
	}
	while (B != 0) {
		rB *= 10;
		rB += B % 10;
		B /= 10;
	}
	
	if (rA > rB)
		printf("%d\n", rA);
	else
		printf("%d\n", rB);
}

그래서 주어진 수를 뒤집는 방법을 이용해서 직접 비교했다.

 

참고한 사이트

doodle-ns.tistory.com/17

 

[C/C++] 정수를 뒤집는 5가지 방법

목표는 간단하다. 입력 받은 정수를 거꾸로 뒤집은 정수를 출력하면 된다. 물론 뒤집었을 때 0으로 시작하는 경우는 0을 출력하지 않는다. 입력 예 1024 출력 예 4201 입력 예 12300 출력 예 321 1. 문자

doodle-ns.tistory.com

 

 

 문제 출처 

www.acmicpc.net/problem/2908

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net