相遇周期
Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 12 Accepted Submission(s) : 3
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
2007年3月26日,在中俄兩國元首的見證下,中國國家航天局局長孫來燕與俄羅斯聯邦航天局局長別爾米諾夫共同簽署了《中國國家航天局和俄羅斯聯邦航天局關於聯合探測火星-火衛一合作的協議》,確定中俄雙方將於2009年聯合對火星及其衛星“火衛一”進行探測。
而衛星是進行這些探測的重要工具,我們的問題是已知兩顆衛星的運行周期,求它們的相遇周期。
Input
輸入數據的第一行為一個正整數T, 表示測試數據的組數. 然後是T組測試數據. 每組測試數據包含兩組正整數,用空格隔開。每組包含兩個正整數,表示轉n圈需要的天數(26501/6335,表示轉26501圈要6335天),用'/'隔開。
Output
對於每組測試數據, 輸出它們的相遇周期,如果相遇周期是整數則用整數表示,否則用最簡分數表示。
Sample Input
2
26501/6335 18468/42
29359/11479 15725/19170
Sample Output
81570078/7
5431415
題解:水題。
參考代碼:
#include
int gcd(int x,int y)
{
while(x!=y)
{
if(x>y)
x=x-y;
else
y=y-x;
}
return x;
}
int lcm(int a,int b)
{
return a/gcd(a,b)*b;
}
int main()
{
int t;
scanf(%d,&t);
while(t--)
{
int a,b,c,d,p;
scanf(%d/%d,&a,&b);
p=gcd(a,b);//這行不能與下一行合並。
a/=p;
b/=p;
scanf(%d/%d,&c,&d);
p=gcd(c,d);
c/=p;
d/=p;
if(gcd(b,d)==1)
printf(%d
,lcm(a,c));
else
printf(%d/%d
,lcm(a,c),gcd(b,d));
}
return 0;
}