1.单词
2.翻译
一项关键的物联网应用是推动智能电网的发展。美国各地的多家电力公司已经或正在升级其电力管理与分配系统。各户内安装的多种传感器(智能温控器)能够收集信息,这些信息会通过网络传输至主站(可能甚至是本地的"枢纽")进行处理,从而实现复杂的电力管理,并将控制信号回传至电网,以节约能源。智能电网的实现得益于对电力生产,传输,分配及消费过程的传感,测量及控制设备的运用。
物联网已被提议应用于住宅,商业,工业及政府环境中智能建筑的建设。一座智能建筑可以是商场或住宅,医院或高层写字楼。智能建筑需要对供暖,空调,照明以及环境变化进行监测与调控。它们还能负责建筑安全,消防灭火以及电梯运行等方面的管理。智能建筑技术着重于为建筑带来更为精细的监测与感知"意识".
3.代码
65.求n天后的日期
#include <iostream>
using namespace std;
// 判断是否为闰年
bool isLeapYear(int year) {
// 闰年规则:能被4整除但不能被100整除,或能被400整除
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
// 计算给定日期的第二天,直接修改传入的年月日
void getNextDay(int &year, int &month, int &day) {
// 每个月的天数(非闰年),索引0不用,1-12对应1-12月
int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 如果是闰年,2月天数改为29
if (isLeapYear(year)) {
daysInMonth[2] = 29;
}
// 先尝试天数+1
day++;
// 判断是否超出当月天数
if (day > daysInMonth[month]) {
day = 1; // 天数重置为1
month++; // 月份+1
// 判断月份是否超出12
if (month > 12) {
month = 1; // 月份重置为1
year++; // 年份+1
}
}
}
int main() {
int year, month, day, n;
// 输入年月日和n
cin >> year >> month >> day >> n;
// 循环n次,每次计算下一天
for (int i = 0; i < n; i++) {
getNextDay(year, month, day);
}
// 输出结果
cout << year << " " << month << " " << day << endl;
return 0;
}
这个写了很久还是出错,看了豆包写的,逻辑还是非常好。
如果要求n天以后的日期,则就循环n次,一天一天的加。
用bool型函数先判断是否是闰年,如果是则 修改2 月的天数。重点是每个月的天数是用数组存的,跳过索引为0。
然后用void型函数在当前天数加上一天,如果天数超过当月的总天数,则天数置为1,然后月份加1.如果月份超过12,则月份置为1,然后年份加1.
66.菱形
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if(n==1)
cout<<"Z"<<endl;
else if(n==2)
{
cout<<" "<<"Z"<<endl;
cout<<"Y"<<" "<<"X"<<endl;
cout<<" "<<"W"<<endl;
}
else if(n==3)
{
cout<<" "<<"Z"<<endl;
cout<<" "<<"Y"<<" "<<"X"<<endl;
cout<<"W"<<" "<<"V"<<endl;
cout<<" "<<"U"<<" "<<"T"<<endl;
cout<<" "<<"X"<<endl;
}
}
return 0;
}
直接暴力解,但是只写了3种情况。视频讲解的是分析每行的左边和右边空格,以及每行的字母个数,以及中间空格,在跟'Z'-1得到其余字母
67.三角形个数
#include<bits/stdc++.h>
using namespace std;
int countTriangles(int n)
{
int count=0;
// a的范围:1到n-2(因为b和c至少为1)
for(int a=1;a<=n-2;a++)
{// b的范围:1到n-a-1(因为c至少为1)
for(int b=1;b<=n-a-1;b++)
{
int c=n-b=a;
if(c<=0)
continue;
if(a==b||b==c||a==c)
continue;
if(a+b>c&&a+c>b&&b+c>a)
{
if(a<b&&b<c)
count++;
}
}
}
}
int main()
{
int n;
while(cin>>n)
{
cout<<countTriangles(n)<<endl;
}
return 0;
}
一开始想不到,豆包直接给的暴力解
// a的范围:1到n-2(因为b和c至少为1)
// b的范围:1到n-a-1(因为c至少为1)
c = n - a - b
1.// 先过滤掉c不是正整数的情况if (c <= 0) { continue; }
2.// 条件1:三边两两不相等if (a == b || b == c || a == c) { continue; }
3.// 条件3:去重(只统计a < b < c的组合,避免重复计数)if (a < b && b < c) { count++;