Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Cho tử số ~a~ và mẫu số ~b~ của 1 phân số là các số nguyên, bạn cần viết 1 chương trình rút gọn phân số ~\frac{a}{b}~ về phân số tối giản.
Input
- Tử số ~a~ và mẫu số ~b~ của phân số cần rút gọn
Giới hạn
- ~|a|, |b| \le 1000 ~
Output
Phân số tối giản sau khi đã rút gọn
- Nếu phân số được yêu cầu không hợp lệ, in ra
INVALID
- Nếu giá trị của phân số là một số nguyên, in ra số nguyên đó
- Trường hợp khác, in ra tử số và mẫu số của phân số tối giản cách nhau 1 dấu cách
Sample
Input #1
4 -8
Output #1
-1 2
Bình luận
public static int findGreatestCommonDivisor(int a, int b) { a = Math.abs(a); b = Math.abs(b);
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
case chú ý nếu a = 0 nhé
include <bits/stdc++.h>
using namespace std; long long a,b,s; int main() { cin>>a>>b; if (b==0) { cout<<"INVALID"; return 0; } s=__gcd(a,b); a=a/s; b=b/s; if (b==1) { cout<<a; return 0; } if (b!=1) { cout<<a<<" "<<b; return 0; } return 0; }
Python AC
from math import gcd a,b = map(int, input().split())
if b == 0: print("INVALID")
elif a == 0: print("0") else: if a % b == 0: print(a//b) else: u = gcd(a,b) a = a // u b = b // u
case 4 là gì vậy mn mình sai ngay khúc đó
int fake=__gcd(a,b) int anew=a/fake int bnew=b/fake if(anew%bnew!=0) if(anew<0 and bnew<0){ cout<<abs(anew)<<" "<<abs(bnew) return 0 } if(anew>=0 and bnew<0){ cout<<anew-anew*2<<" "<<abs(bnew) return 0 } if((anew>=0 and bnew>0) or (anew<0 and bnew>0)){ cout<<anew<<" "<
include <bits/stdc++.h>
using namespace std;
int ucln1(int a, int b){ if (b== 0){ return a; } return ucln1(b,a%b); } int main(){ int a, b; cin >> a >> b; if ((b==0)||(a==0&&b==0)) { cout << "INVALID"; } else if (a%b==0){ cout << a/b; } else { int tu = a/ucln1(a,b); int mau = abs(b/ucln1(a,b)); if ((a<0 && b>0)||(a<0 && b>0)){ cout << tu*(-1) << " " << mau; } else if((a>0 && b>0)||(a<0 && b<0)) { cout << tu << " " << mau; } } return 0; } Hơi loằng ngoằng tí nhưng AC đủ 5 test
include <stdio.h>
} }
Java chào các đạo hữu, có ích thì cho mình up vote nhé :p
include <bits/stdc++.h>
define str string
typedef long long ll; typedef double dou;
using namespace std; ll a, b; int main(){ cin >> a >> b; if(b == 0){ cout << "INVALID"; } else if(a % b == 0){ cout << a / b; } else{ ll c = __gcd(a, b); cout << (a / c) << ' ' << (b / c); } return 0; } Code C++ cho bạn nào tham khảo nhế ^^
using namespace std;
define f() iosbase::syncwith_stdio(0); cin.tie(0); cout.tie(0)
int main() { f(); int a,b; cin>>a>>b; int x=__gcd(a,b); if (!b) cout<<"INVALID"; else if (!(a%b)) cout<<a/b; else cout<<a/x<<" "<<b/x; }
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Chú ý trường hợp phân số không rút gọn được và cả tử và mẫu cùng âm.
chú ý case 5 là 2 số âm nhe mn
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
case cuối xử lý ntn v
case là gì nhỉ
case 2 là gì thế mn ơi
test case 4 là gì v mn