1. PAT乙题1018. 锤子剪刀布 (20)

    #include<iostream> #include<string> #include<cctype> #include<vector> #include<algorithm> using namespace std; int main() { #ifdef LOCAL freopen("d:\\datain.txt", "r", stdin); //freopen("d:\\dataout.txt", "w", stdout); #endif LOCAL int n; cin >> n; char s[4] = { 'B','C','J' }; int s1 = 0, f1 = 0, p1 = 0; int s2 = 0, f2 = 0, p2 = 0; int c1 = 0, j1 = 0, b1 = 0; int c2 = 0, j2 = 0, b2 = 0; char i1, i2; for (int i = 0; i < n; i++) { //cin >> i1 >> i2; scanf(" %c %c", &i1, &i2); //cout << i1 << " " << i2 << endl; if (i1 == i2) { p1++; p2++; } else if (i1 == 'C'&&i2 == 'J') { s1++; f2++; c1++; } else if (i1 == 'J'&&i2 == 'B') { s1++; f2++; j1++; } else if (i1 == 'B'&&i2 == 'C') { s1++; f2++; b1++; } else { f1++; s2++; if (i2 == 'J') j2++; else if (i2 == 'B') b2++; else c2++; } //cout << s1 << " " << f1 << " " << p1 << endl; } cout << s1 << " " << p1 << " " << f1 << endl; cout << s2 << " " << p2 << " "<<f2 << endl; cout << ((b1 >= c1 && b1 >= j1) ? s[0] : (c1 > b1&&c1 >= j1) ? s[1] : s[2]) << " "; cout << ((b2 >= c2 && b2 >= j2) ? s[0] : (c2 > b2&&c2 >= j2) ? s[1] : s[2]) << endl; }

    2018/01/25 PAT

  2. PAT乙题1017. A除以B (20)

    #include<iostream> #include<string> #include<cctype> #include<vector> #include<algorithm> using namespace std; int main() { #ifdef LOCAL freopen("d:\\datain.txt", "r", stdin); //freopen("d:\\dataout.txt", "w", stdout); #endif LOCAL string s; int a; cin >> s >> a; int len = s.length(); int t = (int)(s[0] - '0') / a; if (len == 1 || (t != 0 && len > 1)) { cout << t; } int temp = (s[0] - '0') % a; for (int i = 1; i < len; i++) { int t = (temp * 10 + s[i] - '0') / a; cout << t; temp = (temp * 10 + s[i] - '0') % a; } cout << " " << temp; }

    2018/01/25 PAT

  3. PAT乙题1016. 部分A+B (15)

    ```c++ #include #include #include #include #include using namespace std; int main() { #ifdef LOCAL freopen("d:\\datain.txt", "r", stdin); //freopen("d:\\dataout.txt", "w", stdout); #endif LOCAL string a, b; char da, db; cin >> a >> da >> b >> db; long long a1=0, b1=0; int ca = 0, cb = 0; for (int i = 0; i < a.size(); i++) { if (a[i] == da) ca++; } for (int i = 0; i < b.size(); i++) { if (b[i] == db) cb++; } if (ca != 0) a1 = da - '0'; if (cb != 0) b1 = db - '0'; for (int i = 1; i < ca; i++) a1 = a1 * 10 + da - '0'; for (int i = 1; i < cb; i++) b1 = b1 * 10 + db - '0';

    2018/01/25 PAT

  4. PAT乙题1015. 德才论 (25)

    ```c++ #include #include #include #include #include using namespace std; struct d { int id; int de; int cai; }; bool cmp(d a, d b) { if ((a.de + a.cai)>(b.de + b.cai)) return true; else if ((a.de + a.cai) == (b.de + b.cai)) { if (a.de > b.de) return true; else if (a.de == b.de) return a.id < b.id; else return false; } return false; } bool cmp2(d a, d b) { return a.id<b.id; } vector d1; vector d2; vector d3; vector d4; int main() { #ifdef LOCAL freopen("d:\\datain.txt", "r", stdin); //freopen("d:\\dataout.txt", "w", stdout); #endif LOCAL int n, l, h; cin >> n >> l >> h; for (int i = 0; i < n; i++) { d t; //cin >> t.id >> t.de >> t.cai; scanf("%d%d%d", &t.id, &t.de, &t.cai); if (t.de >= l&&t.cai >= l) { if (t.de >= h && t.cai >= h) { d1.push_back(t); } else if (t.de >= h && t.cai < h) { d2.push_back(t); } else if (t.de < h&&t.cai < h&&t.de >= t.cai) { d3.push_back(t); } else { d4.push_back(t); } } } cout << d1.size() + d2.size() + d3.size() + d4.size() << endl; vector::iterator it; sort(d1.begin(), d1.end(), cmp); sort(d2.begin(), d2.end(), cmp); sort(d3.begin(), d3.end(), cmp); sort(d4.begin(), d4.end(), cmp);

    2018/01/25 PAT

  5. PAT乙题1014. 福尔摩斯的约会 (20)

    #include<iostream> #include<string> #include<cctype> using namespace std; int main() { #ifdef LOCAL freopen("d:\\datain.txt", "r", stdin); //freopen("d:\\dataout.txt", "w", stdout); #endif LOCAL string a, b, c, d; cin >> a >> b >> c >> d; int i = 0, j = 0; char t[2]; string week[7] = { "MON","TUE","WED","THU","FRI","SAT","SUN" }; while (i < a.length() && i < b.length()) { if ((a[i] == b[i]) && (a[i] >= 'A'&&a[i] <= 'G')) { cout << week[a[i] - 'A'] << " "; break; } i++; } i++; while (i < a.length() && i < b.length()) { if (a[i] == b[i] && ((a[i] >= 'A'&&a[i] <= 'N') || isdigit(a[i]))) { //cout << "t:" << a[i] << endl; int t1 = isdigit(a[i]) ? a[i] - '0' : a[i] - 'A' + 10; printf("%02d:", t1); break; } i++; } while (j < c.length() && j < d.length()) { if (c[j]==d[j]&&isalpha(c[j])){ printf("%02d", j); break; } j++; } }

    2018/01/25 PAT

  6. PAT乙题1013. 数素数 (20)

    #include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> #include<map> #include<string> #include<fstream> #include<vector> #include<stack> #include<functional> using namespace std; bool isprime(int d) { for (int i = 2; i*i <= d; i++) { if (d%i == 0) { return false; } } return true; } int main() { #ifdef LOCAL freopen("d:\\datain.txt", "r", stdin); //freopen("d:\\dataout.txt", "w", stdout); #endif LOCAL int n, m; cin >> m >> n; int j = 0; for (int i = 2;; i++) { if (isprime(i)) { j++; //cout << "j" << j; if (j >= n) { cout << i; break; } if (j >= m) { //cout << "j:" << j; cout << i ; if (j>m&&(j-m+1)%10==0) { cout << endl; } else { cout << " "; } } } } return 0; }

    2018/01/25 PAT

  7. PAT乙题1012. 数字分类 (20)

    ```c++ #include #include #include #include #include<map> #include #include #include #include #include using namespace std;

    2018/01/25 PAT

  8. PAT乙题1011. A+B和C (15)

    ```c++ #include #include #include #include #include<map> #include #include #include #include #include using namespace std;

    2018/01/25 PAT

  9. PAT乙题1010. 一元多项式求导 (25)

    ```c++ #include #include #include #include #include<map> #include #include #include #include #include using namespace std;

    2018/01/25 PAT

  10. PAT乙题1009. 说反话 (20)

    ```c++ #include #include #include #include #include<map> #include #include #include #include #include using namespace std;

    2018/01/25 PAT