不是怎么卡RE的啊

P1572 计算分数

``` #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int numa[1005], numb[1005]; char charater[1005]; int main(){ int id = 1; int Gcd = 0, lcm = 0; while(1){//略微有点复杂的输入** int a, b; scanf("%d/%d", &a, &b); numa[id] = a; numb[id] = b; char ch = getchar(); if(ch == '\n') break; charater[id] = ch; id++; } // for(int i = 1; i <= id; i++) // printf("%d %d %c\n", numa[i], numb[i], charater[i]); Gcd = __gcd(numb[2], numb[1]); lcm = numb[2] * numb[1] / Gcd; for(int i = 3; i <= id; i++){ Gcd = __gcd(numb[i], lcm); // printf("Gcd = %d numb[i] = %d numb[i-1] = %d\n", Gcd, numb[i], numb[i-1]); lcm = numb[i] * lcm / Gcd; } //printf("lcm=%d\n", lcm); for(int i = 1; i <= id; i++){ numa[i] = (lcm / numb[i]) * numa[i]; numb[i] = lcm; } /*for(int i = 1; i <= id; i++) printf("%d %d\n", numa[i], numb[i]);*/ int ans = numa[1]; for(int i = 2; i <= id; i++){ // printf("%d\n", ans); if(charater[i-1] == '+') ans += numa[i]; else if(charater[i-1] == '-') ans -= numa[i]; } printf("%d/%d", ans / __gcd(ans, numb[1]), numb[1] / __gcd(ans, numb[1])); return 0; } ```
by Foggy_night @ 2023-11-09 22:25:21


|