1.分巧克力 (AC100%) #include <iostream> using namespace std; int chocolate[100]; int gcd(int a, int b) { return (a % b == 0 ? b : gcd(b, a % b)); } int main(int argc, char const *argv[]) { int n; int tmp; cin >> n; cin >> chocolate[0]; tmp = chocolate[0]; for(int i = 1; i < n; ++i) { cin >> chocolate[i]; tmp = gcd(tmp, chocolate[i]); } cout << tmp << endl; return 0; } 2.除夕夜A (AC100%) #include <iostream> using namespace std; const int SUM_SECOND = 240; int main(int argc, char const *argv[]) { int n; // 题数 int m; // 走出房间时间 cin >> n; cin >> m; int res = 0; // 做的题数 int sumTime = SUM_SECOND - m; while(res < n) { sumTime -= (res + 1) * 5; if(sumTime >= 0) { ++res; } else { break; } } cout << res << endl; return 0; } 3.求和A (AC100%) #include <iostream> using namespace std; const int MAX = 1e6; int num[MAX]; int leftSum[MAX]; // leftSum[i]表示num[0] + num[1] + ... + num[i] int righSum[MAX]; // rightSum[i]表示num[i] + num[i + 1] + ... + num[n - 1] void cntLeftEqualsToRight(int n) { int res = 0; // left to right cin >> num[0]; int tmp = num[0]; leftSum[0] = tmp; for(int i = 1; i < n; ++i) { cin >> num[i]; tmp += num[i]; leftSum[i] = tmp; } // right to left tmp = num[n - 1]; righSum[n - 1] = tmp; for(int i = n - 2; i >= 0; --i) { tmp += num[i]; righSum[i] = tmp; if(righSum[i + 1] == leftSum[i]) { ++res; } } cout << res << endl; } int main(int argc, char const *argv[]) { int n = 9; while(cin >> n != NULL) { cntLeftEqualsToRight(n); } return 0; }
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务