5 条题解

  • 0
    @ 2025-3-20 14:57:14
    /*
    思路
        思路一(error) 效率太低无法通过: 
            1. 循环从1到最小的那个数
            2. 循环操作: if(a % i == 0 && b % i == 0)
            3. 用max记录并更新
        思路二(学习):欧几里得法
            1. 写一个gcd函数 
            2. 原理:两个数的最大公约数等于其中较小的数和两数相除的余数的最大公约数
            3.      gcd(a,b) = gcd(b,a%b) 
    */
    
    #include <bits/stdc++.h>
    using namespace std;
     
    long gcd( long a, long b ) {
        while ( b != 0 ) {
            //gcd(a,b) = gcd(b,a%b)
            long temp = b;
            b = a % b;
            a = temp;
        }
        return a;
    }
    
    int main()
    {
        long a,b;
        cin >> a >> b;
        if ( a >= b ) {
            cout << gcd(a,b) << endl;
        } else {
            cout << gcd(b,a) << endl;
        }
    
        return 0;
    }
    /*
    #include <bits/stdc++.h>
    using namespace std;
    
    int main() 
    {
        long m,n;
        cin >> m >> n;
    
        long min = 0;
        if (m > n) min = n;
        else min = m;
    
        long max = 1;
        for ( int i = 1; i <= min; i++ ) {
            if ( m % i == 0 && n % i == 0 ) {
                max = max < i ? i : max;
            }
        }
    
        cout << max << endl;
    
    
        return 0;
    }
    */
    
    
    • 0
      @ 2025-2-10 17:06:14
      // https://dashoj.com/p/92
      #include <bits/stdc++.h>
      
      using namespace std;
      
      typedef long long ll;
      
      ll gcd(ll a, ll b) {
      	if(b == 0) return a;
      	return gcd(b, a % b);
      }
      
      int main() {
      	ll a, b;
      	cin >> a >> b;
      	cout << gcd(a, b) << endl;
      	return 0;
      }
      
      • 0
        @ 2024-4-10 23:21:34
        #define int long long
        using namespace std;
        
        
        int gcd(int a,int b){
        	if(b==0){
        		return a;
        	}else{
        		return gcd(b,a%b);
        	}
        }
        
        signed main()
        {
        	
        	int a,b;
        	cin>>a>>b;
        	cout<<gcd(a,b); 
        	return 0;
        }
        
        • 0
          @ 2024-4-9 19:34:26

          #include <bits/stdc++.h>

          using namespace std;

          using ll =long long; ll gcd (ll a,ll b){

          if(b==0){
          	return a;
          }
          return gcd (b,a%b);
          

          }

          int main(){ ll a,b; //主函数力还得定义 cin>>a>>b; cout<< gcd(a,b) <<endl;

          return 0; 
          

          }

          • 0
            @ 2024-4-7 20:18:00

            oi-wiki

            #include <iostream>
            #include <cmath>
            
            using namespace std;
            
            using ll = long long;
            
            ll fxxk(ll a, ll b) {
            	return b == 0 ? a : fxxk(b, a % b);
            }
            
            int main() {
            	ll a, b;
            	cin >> a >> b;
            	cout << fxxk(a, b) << '\n';
            	return 0;
            }
            
            • 1

            信息

            ID
            92
            时间
            1000ms
            内存
            256MiB
            难度
            5
            标签
            递交数
            322
            已通过
            118
            上传者