6 条题解

  • 5
    @ 2023-6-25 2:17:05

    思路:

    根据题目条件,我们有:image

    将上式相减可得:image

    abbcca均是x的倍数。因此,满足条件的最小的x应该是a,b,c的差值的最大公约数。

    完整代码:

    #include<bits/stdc++.h>
    using namespace std;
    int main() {
        int a, b, c;
        cin >> a >> b >> c;
        
        for(int i=2;;i++) 
            if(a % i == b % i && b % i == c % i) {
                cout << i;
                return 0;
            }
    }
    
    • 3
      @ 2023-11-25 21:27:53
      #include <iostream>
      using namespace std;
      int main()
      {
          int a , b , c , x = 2;
          cin >> a >> b >> c;
          while(!((a % x == b % x)&&(b % x == c % x)))
          {
              x++;
          }
          cout << x;
          return 0;
      }
      
      • 3
        @ 2023-10-29 15:36:27
        #include <iostream>
        using namespace std;
        
        int main() {
            int a, b, c;
            cin >> a >> b >> c;
        
            int x = 2; // 从2开始尝试x的值
        
            while (true) {
                if (a % x == b % x && b % x == c % x) {
                    break;
                }
                x++;
            }
        
            cout << x << std::endl;
        
            return 0;
        }
        
        • 3
          @ 2023-6-23 9:01:58
          #include <iostream>
          using namespace std;
          int main()
          {
              int a, b, c, r1, r2, r3;
              cin >> a >> b >> c;
              for (int x = 2; ; x++)
              {
                  r1 = a % x;
                  r2 = b % x;
                  r3 = c % x;
                  if (r1 == r2 && r1 == r3)
                  {
                      cout << x;
                      break;
                  }
              }
              return 0;
          }
          
          • @ 2023-6-25 2:17:49

            你这个代码有点长,建议你优化一下😄

        • 2
          @ 2024-4-6 8:49:09

          第一版:

          #include<bits/stdc++.h>
          using namespace std;
          int a,b,c,x,minn;
          int main(){	
              cin>>a>>b>>c;
              if (a <= b && a <= c) minn=a;
              else if (b <= a && b <= c) minn=b;
              else minn=c; 
              // 找出最小值
          	for(int i=2;i<=minn;i++){ // 因,整数中除数大于被除数返回被除数,所以最大除数选用最小值
          		if(a%i==b%i && b%i==c%i){ // 如果余数相同
                      x=i; // 赋值
                      break; // 退出循环
                  }
          	}
          	cout<<x;		
          	return 0;
          }
          

          第二版

          #include<bits/stdc++.h>
          using namespace std;
          int a,b,c,x=2;
          int main(){	
              cin>>a>>b>>c;
          	for(int i=2;;i++){ 
          		if(a%i==b%i && b%i==c%i){
                      x=i; 
                      break;
                  }
          	}
          	cout<<x;		
          	return 0;
          }
          

          第三版

          #include<bits/stdc++.h>
          using namespace std;
          int a,b,c;
          int main(){	
              cin>>a>>b>>c;
          	for(int i=2;;i++){ 
          		if(a%i==b%i && b%i==c%i){
                      cout<<i;
                      return 0;
                  }
          	}
          			
          	return 0;
          }
          

          e~我写的还不错吧大佬们

          • 1
            @ 2024-6-1 20:41:12
            #include <bits/stdc++.h>
            using namespace std;
            int main()
            {
                long long a,b,c;
                cin >> a >> b >> c;
                for(int i=2;i<=1000000;i++)
                {
                    if(a%i == b%i && b%i==c%i)
                    {  cout << i;
                        break;
                    }    
                }
                return 0;
            }
            
            • 1

            信息

            ID
            180
            时间
            1000ms
            内存
            128MiB
            难度
            3
            标签
            递交数
            178
            已通过
            97
            上传者