1. 程式人生 > >HDU2504-又見GCD-遞歸

HDU2504-又見GCD-遞歸

輸出 條件 int accep tle 接下來 class 題意 strong

又見GCD

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 19327 Accepted Submission(s): 8044


Problem Description 有三個正整數a,b,c(0<a,b,c<10^6),其中c不等於b。若a和c的最大公約數為b,現已知a和b,求滿足條件的最小的c。

Input 第一行輸入一個n,表示有n組測試數據,接下來的n行,每行輸入兩個正整數a,b。

Output 輸出對應的c,每組測試數據占一行。

Sample Input 2 6 2 12 4

Sample Output 4 8 題意好理解,gcd,但是人家說遞歸耗內存還是啥,不知道。。。 輾轉相除法。。。 代碼:
#include<stdio.h>
int gcd(int a,int b){              //遞歸
    if(a%b==0)
        return b;
    else
        return gcd(b,a%b);
}
int main(){
    int n,i,a,b,c;
    while(~scanf("%d",&n)){
        
while(n--){ scanf("%d%d",&a,&c); b=2*c; while(gcd(a,b)!=c) b+=c; printf("%d\n",b); } } return 0; }

==

HDU2504-又見GCD-遞歸