21
2016-09-13 16:39:42
1
CFraction GetNextHenryFraction(CFraction frac)
{
int r = (int)ceil((double)frac.m_den / frac.m_num);
CFraction fracLatter(1, r);
return frac.subtract(fracLatter);
}
int DoHenry(int num, int den)
{
int result;
CFraction fracTemp(num,den);
while( fracTemp.m_num != 0 )
{
fracTemp = GetNextHenryFraction(fracTemp);
if( fracTemp.m_num != 0 )
result = fracTemp.m_den;
}
return result;
}
int main(int argc, _TCHAR* argv[])
{
int n, num, den;
scanf("%d", &n);
for (int i = 0; i<n; i++)
{
scanf("%d %d", &num, &den);
printf("%d", DoHenry(num, den));
}
return 0;
}
C++언어 변환기로 변환해봤습니다.
아주 잘 되네요 ㅎ
h, n의 부분을 단순히 n만 집어넣었더니 while문 안쪽에서 한번 더도는군요
역시 아무 의미없이 중복되지 않았군요 ㅎㅎ