题目详情::
1021 个位数统计 (15 分)
描述:
思路:
对每一位数进行遍历,visit数组对应的下标加 1 。
代码:
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int visit[10];
int main(){
string ch;
int num;
cin >> ch;
for(int i=0; i<ch.length(); i++){
num = ch[i] - '0';
visit[num]++;
}
for(int i=0; i<10; i++){
if(visit[i] != 0) cout << i << ":" << visit[i] << endl;
}
system("pause");
return 0;
}
1022 D进制的A+B (20 分)
描述:
思路:
对输入的数进行:num = sum % D; sum /= D;
求得转换后的进制数。
代码:
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
int A, B, D, sum, a[100], i = 0;
cin >> A >> B >> D;
sum = A + B;
do{
a[i++] = sum % D;
sum /= D;
}while(sum != 0);
for(i=i-1; i>=0; i--)
cout << a[i];
system("pause");
return 0;
}
1028 人口普查 (20 分)
描述:
思路:
使用sscanf函数读取格式化的字符串中的数据,根据题目条件进行判断。
代码:
#include<iostream>
#include<algorithm>
#include<set>
using namespace std;
int main(){
int n,year,moon,day;
char time[12];
cin>>n;
int cnt=0, m_y=1814, m_m=9, m_d=6, n_y=2014, n_m=9, n_d=6;
string A, B, name;
for(int i = 0; i < n; i++){
cin >> name;
scanf("%s", time);
sscanf(time, "%d/%d/%d", &year, &moon, &day);
if(moon>12||moon<1||day>31||day<1||year>2014||year<1814) continue;
if(year==2014 && moon>9) continue;
if(year==2014 && moon==9 && day>6) continue;
if(year==1814 && moon<9) continue;
if(year==1814 && moon==9 && day<6) continue;
cnt++;
if(year>m_y||(year==m_y && moon>m_m)||(year==m_y && moon==n_m && day>m_d))
{ A=name;m_y=year;m_m=moon;m_d=day; }
if(year<n_y||(year==n_y && moon<n_m)||(year==n_y && moon==n_m && day<n_d))
{ B=name;n_y=year;n_m=moon;n_d=day; }
}
if(cnt > 0) cout << cnt << " " << B << " " << A;
else cout<<cnt;
return 0;
}
1029 旧键盘 (20 分)
描述:
思路:
对输入的第一个字符串进行遍历,使用find函数判断第二个字符串中是否存在第一个字符串中的元素。
注意:find函数判断为空是 s2.find(s1[i]) == string::npos;
代码:
#include <iostream>
#include <cctype>
using namespace std;
int main() {
string s1, s2, ans;
cin >> s1 >> s2;
for (int i = 0; i < s1.length(); i++)
if (s2.find(s1[i]) == string::npos && ans.find(toupper(s1[i])) == string::npos)
ans += toupper(s1[i]);
cout << ans;
return 0;
}
1031 查验身份证 (15 分)
描述:
代码:
#include<iostream>
using namespace std;
int main(){
char c[18];
bool flag = 0;
int a[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
char b[11] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
int sum, i, n, j;
cin >> n;
for(i=0; i<n; i++)
{
cin>>c;
sum = 0;
for(j=0; j<17; j++)
{
sum = sum + (c[j]-'0') * a[j];
sum = sum % 11;
}
if(b[sum] != c[17])
{
flag = 1;
cout << c << endl;
}
}
if(flag == 0)
cout<<"All passed"<<endl;
return 0;
}