[IT]/백준

[백준] 14490번 백대열

working_hard 2019. 6. 10. 15:40
728x90

c++ 문자열 처리방법중 하나 터득하였습니다.

최대공약수 구하는 방법 터득하였습니다.

int gcd(int a,int b){

   if(a%b==0){return b;}

   return gcd(b,a%b);

}

#include<iostream>
#include<string>
using namespace std;

int gcd(int a, int b) {
	if (a%b == 0) {
		return b;
	}
	return gcd(b, a%b);
}

int main() {
	string s;
	cin >> s;
	int a=0, b=0, digit = 1;
	bool flag = true;
	for (int i = s.length()-1; i >=0; i--) {
		if (s[i] == ':') {
			digit = 1;
			flag = false;
		}
		else {
			if (flag) {
				b += (s[i] - '0')*digit;
				digit *= 10;
			}
			else {
				a += (s[i] - '0')*digit;
				digit *= 10;
			}
		}
	}
	int igcd = gcd(a, b);
	cout << a / igcd << ":" << b / igcd << endl;
	return 0;
}