hdu 2503 유클리드

1633 단어 c테스트inputoutput
a/b + c/d
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4819    Accepted Submission(s): 2782
Problem Description
점 수 를 두 개 주 고 그들의 합 을 구하 고 가장 간단 한 형식 으로 요구 합 니 다.
 
Input
입력 은 먼저 정수 T (T < = 1000) 를 포함 하고 T 조 테스트 데이터 가 있 음 을 나타 내 며, 그 다음 T 줄 데 이 터 를 포함 합 니 다. 각 줄 에는 4 개의 정수 a, b, c, d (0 < a, b, c, d < 1000) 를 포함 하고, 두 개의 점수 a / b 와 c / d 를 표시 합 니 다.
 
Output
각 그룹의 테스트 데이터 에 대해 두 개의 정수 e 와 f 를 출력 하면 a / b + c / d 의 가장 간단 한 결 과 는 e / f 이 고 각 그룹의 출력 은 한 줄 을 차지한다.
 
Sample Input

   
   
   
   
2 1 2 1 3 4 3 2 3

 
Sample Output

   
   
   
   
5 6 2 1

 
사고의 방향  먼저 더 한 다음 에 분자 분 모 를 모두 2 자의 최대 공약수 로 나눈다.
#include<stdio.h>
int x,y;
int gcd(int a,int b)
{
	int t,d;
	if(b==0)
	{
		x=1;
		y=0;
		return a;
	}
	d=gcd(b,a%b);
	t=x;
	x=y;
	y=t-(a/b)*y;
	return d;
}
int main()
{
	int cas,a,b,c,d,k1,k2,k3,k4;
	int ans;
	scanf("%d",&cas);
	while(cas--)
	{
	   scanf("%d %d %d %d",&k1,&k2,&k3,&k4);
       a=k1*k4+k2*k3; b=k2*k4;
	   d=gcd(a,b);
	   printf("%d %d
",a/d,b/d); } return 0; }

좋은 웹페이지 즐겨찾기