第一场题目:点击打开链接
A-
B-
C-
D-
E - Lowest Common Multiple Plus hdu
2 4 6 3 2 5 7
12 70
注意:两个32位以内的数相乘可能会超32位,原始的lcm函数中的 a*b / gcd(a, b) ,应改为 a / gcd (a, b) * b.这里容易WA掉。
//Accepted 248 KB 0 ms G++ #include<cstdio> int gcd(int a, int b) /* 返回最大公约数 */ { return b == 0 ? a : gcd(b, a%b); } int lcm(int a, int b) /* 返回最小公倍数 */ { return a/gcd(a, b)*b; /*注意:直接 a*b 会超 32位 , 此处易WA */ } int main() { int n; while(scanf("%d", &n) != EOF) { int ans = 1, a; while(n--) { scanf("%d", &a); ans = lcm(ans, a); } printf("%d\n", ans); } return 0; }
F - 今年暑假不AC hdu 2037 题解
G-