题意
给出 n n n个数 A A A,求一组整数 X X X,使 X 1 A 1 + . . . X n A n X_1A_1+…X_nA_n X1A1+...XnAn最小,求这个最小值。
思路
对于多个数,我们可以发现 c c c的值为 ( a , b ) (a,b) (a,b)的倍数,那么可以看做是 a a a,然后和下一个数计算。所以答案就是它们的 g c d gcd gcd了。
代码
#include
#include
int n, ans; int main() {
scanf("%d", &n); for (int i = 1, a; i <= n; i++) {
scanf("%d", &a); a = a < 0 ? -a : a; ans = std::__gcd(ans, a); } printf("%d", ans); }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225771.html原文链接:https://javaforall.net
