题目描述
在某网站收集了n个人的注册账号,账号类型有身份证号或者QQ号两种。
请编程用恰当的数据结构保存信息,并统计身份证中男性和女性的人数,以及QQ账号的平均值(取整)。
提示:身份证号码中倒数第二位若为奇数则表示男性,若为偶数则表示女性。
输入
第1行,一个正整数n,1≤n≤10000;
下面n行,每行一个字符和一个字符串。第一个字符表示账号类型,有i、q两种,第二个字符串是账号的信息。
输出
一行3个整数,分别代表男性人数、女性人数、QQ号平均值。
样例输入
6
i 522633200009118006
i 51170219990111195X
i 45102119800321935X
q 20081011
q 17254862
i 511702196505046283
样例输出
2 2 18667936
AC 代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int m, w, n;
m = 0; w = 0; n = 0;
long long avg = 0, cnt = 0;
cin >> n;
char ch;
long long temp = 0;
string s;
while(n--) {
cin >> ch;
if (ch == 'q') {
temp++;
cin >> cnt;
avg += cnt;
} else if (ch == 'i') {
cin >> s;
long long l = s.size();
//cout << l << endl;
//cout << s[l - 2] << endl;
int a = s[l - 2] - 48;
//cout << a << endl;
if (a % 2 == 1) m +=1;
else w += 1;
}
}
cout << m << " " << w << " " << (avg == 0 ? 0 : (avg / temp) )<< endl;
return 0;
}