85.手机短号
题目描述
大家都知道,手机号是一个11位长的数字串,同时,作为学生,还可以申请加入校园网,如果加入成功,你将另外拥有一个短号。假设所有的短号都是"6"+手机号的后5位,比如号码为13512345678的手机,对应的短号就是645678。
现在,如果给你一个11位长的手机号码,你能找出对应的短号吗?
代码
cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
if (cin >> n) {
while (n--) {
string phone;
cin >> phone;
cout << "6";
for (int i = 6; i < 11; ++i) {
cout << phone[i];
}
cout << endl;
}
}
return 0;
}
总结
读入字符串后循环输出后五位就行。
86.字符串统计
对于给定的一个字符串,统计其中小写字母出现的次数
代码
cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
if (cin >> n) {
while (n--) {
string s;
cin >> s;
int count = 0;
// 遍历字符串中的每一个字符
for (int i = 0; i < s.length(); i++) {
// 判断是否为小写字母
if (s[i] >= 'a' && s[i] <= 'z') {
count++;
}
}
cout << count << endl;
}
}
return 0;
}
总结
if (s[i] >= 'a' && s[i] <= 'z') ,字符数组可以直接判断哪部分为小写字母。
87.弟弟的作业
题目描述
你的弟弟刚做完了"100以内数的加减法"这部分的作业,请你帮他检查一下。每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过100的非负整数;c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?",表示他不会算。
代码
cpp
#include <iostream>
#include <string>
#include <cstdlib> // 用于string to int
using namespace std;
int main() {
int a, b; // 两个操作数
char op, eq; // 运算符
string ans_str; // 弟弟写的答案
int count = 0; // 记录答对的题数
while (cin >> a >> op >> b >> eq >> ans_str) {
// 如果答案是?
if (ans_str == "?") {
continue;
}
// 将字符串形式的答案转换为整数
int c = stoi(ans_str);
// 计算正确答案
int correct_ans;
if (op == '+') {
correct_ans = a + b;
} else {
correct_ans = a - b;
}
// 比较弟弟的答案和正确答案
if (c == correct_ans) {
count++;
}
}
cout << count << endl;
return 0;
}
总结
做本题的时候要分清楚中英文问号的不同。cin可以很巧妙的按顺序读取输入。?存为字符串即可。
翻译
一个关键的物联网应用是推动智能电网。......个人家庭中的各种传感器(智能恒温器)可以收集信息,这些信息通过网络发送到主站......智能电网通过将传感、测量和控制设备应用于电力生产、传输、分配和消耗而成为可能。
物联网已被建议用于住宅、商业、工业和政府环境中的智能建筑建设。智能建筑可以是购物中心或住宅、医院或高层办公大楼。......它们可以监管建筑安全、火灾扑救(消防)和电梯运行。
residential ------ 住宅的 / 居住的
grid ------ 网格 / 电网
high-rise office tower ------ 高层办公大楼
suppression ------ 抑制 / 扑灭(fire suppression 指消防灭火)
