#include <iostream>
using namespace std;
int main(){
int a, b;
cin >> a >> b;
cout << (b % a ? b - a : b + a) << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;int main(){
int N, M;
cin >> N >> M;
vector<int> cnt(M);
for (int i = 0; i < N; i++) {
int K;
cin >> K;
for (int j = 0; j < K; j++) {
int A;
cin >> A;
A--;
cnt[A]++;
}
}
int ans = 0;
for (int i = 0; i < M; i++) {
if (cnt[i] == N) {
ans += 1;
}
}
cout << ans << endl;
}
分析: 逐个求最大公约数就行。
代码:
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b){
return (0 == b) ? a : gcd(b, a % b);
}
int main(){
int N;
cin >> N;
int A[N];
for(int i=0;i<N;i++) {
cin>>A[i];
}
int ans = A[0];
for(int i=1;i<N;i++) {
ans = gcd(ans,A[i]);
}
cout << ans << endl;
return 0;
}