PAT 엘리베이터 경기 L1-009.N 개수 구화 [시뮬레이션]
https://www.patest.cn/contests/gplt/L1-009
사고방식은 한 걸음 한 걸음 위로 올라가지만 넘침을 고려해야 하기 때문에 LONG LONG을 사용하고 한 걸음 한 걸음 약분을 해야만 넘치지 않도록 보증할 수 있다. 마지막으로 정수 부분과 분자 부분이 모두 0인 상황을 고려해야 한다.
AC 코드
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long LL;
const double PI = 3.14159265358979323846264338327;
const double E = 2.718281828459;
const double eps = 1e-6;
const int MAXN = 0x3f3f3f3f;
const int MINN = 0xc0c0c0c0;
const int maxn = 1e5 + 5;
const int MOD = 1e9 + 7;
LL gcd(LL x, LL y)
{
LL r;
while (1)
{
r = x % y;
if (r == 0)
break;
x = y;
y = r;
}
return y;
}
int main()
{
int n;
cin >> n;
LL a, b, c, d;
scanf("%lld/%lld", &a, &b);
for (int i = 1; i < n; i++)
{
scanf("%lld/%lld", &c, &d);
LL temp = b * d /gcd(b, d);
a *= (temp / b);
a += (c * (temp / d));
b = temp;
temp = gcd(a, b);
a /= temp;
b /= temp;
}
LL vis = a / b;
a %= b;
if (vis)
{
printf("%lld", vis);
if (a)
{
if (vis < 0 && a > 0)
a *= -1;
printf(" %lld/%lld", a, abs(b));
}
}
else if(a)
{
if (b < 0 && a > 0)
a *= -1, b *= -1;
printf("%lld/%lld", a, abs(b));
}
else
cout << 0 ;
cout << endl;
}
전재 대상:https://www.cnblogs.com/Dup4/p/9433268.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.