首页 > 代码库 > 题目1056:最大公约数----------思路很重要

题目1056:最大公约数----------思路很重要

求最大公约数。

(1)不会超过两者中的最小值;

(2)对于两者求余都是为0;

(3)由于最大公约数只有一个,所以当用for来循环的时候,只要等于最后一个就好。

 

AC:

#include<iostream>
using namespace std;

int main()
{
    int n,m;
    while(cin>>n>>m)
    {
     int i,k,max=0;
     if (n>m)
     {
         k=n;n=m;m=k;
     }
     for(i=1;i<=n;i++)
     {
         if(n%i==0 && m%i==0)
          max=i;//只要等于最后一个就好;
     }
     cout<<max<<endl;
    }
    return 0;
}

 

题目1056:最大公约数----------思路很重要