又见GCD

View Code
 1 #include<stdio.h>
 2 int gcd(int n,int m)
 3 {
 4     return 0==m?n:gcd(m,n%m);
 5 }
 6 int main()
 7 {
 8     int num,a,b,c;
 9     scanf("%d",&num);
10     while(num--)
11     {
12         scanf("%d%d",&a,&c);
13         int i;
14         for(i=2;;i++)
15         {
16             b=c*i;
17             if((gcd(a,b)==c)&&a!=b)
18               break;
19         }
20         printf("%d\n",b);
21     }
22     return 0;
23 }

 其实每一道题都会给我一些启示吧

算法最重要

自己一开始穷举所有情况 if else if else最后还是wrong answer .....

遗漏或者错误在所难免

所以自己告诉自己,做题不用太急切....  多考虑一种算法,也许或者只是一点小小的技巧 稍微多的分析一下。嗯

另外自己对算法时间估计不够准确

循环gcd时间不是太多  因为一般的数都会与2 3 5等素质

并且这个gcd函数对(int n,int m) 没有大小限制的

就算输入一个2 3 4 5的公倍数也不算太大哪  太大就超过范围了

原文地址:https://www.cnblogs.com/cgf1993/p/3000544.html