第一题题目:
明明在上学的时候,参加数学兴趣班。在班上,老师介绍了一种非常有趣的阵列。
该阵列由n个正整数构成,阵列中的数字从1开始递增,数字的排序规则是从1开始由中间逆时针向外转出,2出现在1的下面,然后直至输出n为止。
例如当n=5的时候,阵列如下:
5
1 4
2 3
当n=9时,阵列如下:
7 6 5
8 1 4
9 2 3
当n=10时,阵列如下:
7 6 5
8 1 4
9 2 3
10
明明回家后想自己动手构造这样的阵列。他从n=1开始构造,但是他发现当n越来越大时,阵列的复杂性就越高,然后构造出来的阵列就越容易出错。为了降低构造阵列的出错率,提高构造速度,明明就求助于你,请你帮他写一个程序,来构造这样的阵列。
明明的问题可以归结为:给你一个正整数n,请你按题目描述中所述的方法,构造出阵列。
个人总结:
1.此题和之前做的一道旋转矩阵类似,只不过边界条件需要判断好,要先把数字1放入才开始存储其他数字。
2.若用二维数组存储需要注意矩阵边的长度只能为奇数。
3.输出需要加以判断,因为其中有许多空格,但由于其判断输出较为复杂因此未能实现。
代码:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n;
while (cin >> n)
{
int sum = 1;
int m = 1;
while (m * m < n)
{
m += 2;
}
vector<vector<int>> square(m, vector<int>(m, 0));
int top = m / 2, bottom = m / 2;
int left = m / 2, right = m / 2;
square[top][left] = sum;
sum++;
if (sum > n)
break;
while (sum <= n)
{
bottom++;
for (int j = top + 1; j <= bottom && sum <= n; j++)//1
{
square[j][left] = sum;
sum++;
}
if (sum > n)
break;
right++;
for (int i = left + 1; i <= right && sum <= n; i++)//2
{
square[bottom][i] = sum;
sum++;
}
if (sum > n)
break;
top--;
for (int j = bottom - 1; j >= top && sum <= n; j--)//3
{
square[j][right] = sum;
sum++;
}
if (sum > n)
break;
left--;
for (int i = right - 1; i >= left && sum <= n; i--)//4
{
square[top][i] = sum;
sum++;
}
if (sum > n)
break;
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
if (j != m - 1)
cout << square[i][j] << " ";
else
cout << square[i][j] << endl;
}
}
}
return 0;
}

第二题题目:
给你一个浮点数,请你求出这个浮点数的小数位数。
个人总结:
1.本题采用字符串比较容易解决,一开始采用int类型转化成string类型,但是转化后有固定六位所以不宜进行处理,故采用直接string类型输入。
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string num;
while (cin >> num)
{
int loc = num.find('.');
if (loc == string::npos)
cout << 0 << endl;
else
{
int count = num.length() - loc - 1;
cout << count << endl;
}
}
return 0;
}

第三题题目:
输入一个十进制数,将其化成N进制数输出(2≤N≤16)。 输出结果时,大于等于10的数字用字母代替,A代表10,B代表11以此类推。
个人总结:
1.需要对0单独进行处理,返回调用函数返回时为string类型,要加双引号。
代码:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string count(int num, int n)
{
const string charmap = "0123456789ABCDEF";
string result;
if (num == 0)
return "0";
while (num > 0)
{
int yushu = num % n;
result += charmap[yushu];
num /= n;
}
reverse(result.begin(), result.end());
return result;
}
int main()
{
int num, n;
while (cin >> num >> n)
{
string result = count(num, n);
cout << result << endl;
}
return 0;
}

英语翻译
黑色为自己翻译,红色为机翻正确翻译

①协同工作科技发挥着支持的作用。②例如,生物认证应该被广泛用于个性化互动,在人、机器还有物品之间。③在未来人工智能、计算机、机器人视觉,还有远程呈现能够使我们的生活更加自动化。
①协同技术发挥着支撑性作用。②例如,生物识别技术可广泛应用于个性化人类、机器与物体之间的交互。③人工智能、计算机视觉、机器人技术和远程呈现技术,将在未来让我们的生活更加自动化。
①当一个科技出现的时候,物联将会变得更加成熟和复杂。②图片12C-1展示了主要科学技术的进步和关键应用,这些好处可能都来自于物联。③举个例子,供应链现如今逼过去获得了更好的支持。④垂直商场的应用可能代表了下一个进步的趋势。⑤普适计算被期望成为现实在我们向着2020年前进的路上。⑥除此之外,物理上的物联处在一个全球的规模的发展中。⑦这些发展将会对人类能力、社会产出、国家生产力还有生活质量的提升有着重大意义。
①作为一项新兴技术,物联网将变得更加成熟和精密。②图 12C-1 展示了物联网领域的主要技术进步以及可能从中受益的关键应用。③例如,如今的供应链得到了比以往更好的支持。④垂直市场应用或许代表着下一波发展浪潮。⑤到 2020 年,泛在定位有望成为现实。⑥在此之后,物理物联网可能会在全球范围内部署。⑦这些进步将显著提升人类能力、改善社会成果、提高国家生产力并改善生活质量。
①物联网系统可能采用事件驱动的架构。②在图片12C-2中,展现了物联网的发展有着三层结构。③最顶层由驱动应用所构成。④物联网的应用空间非常的广阔。⑤最底层代表了各种各样形式的感应机器:姓名种类的RFID标签、ZigBee或者其他形式的传感器,还有道路测绘GPS导航仪。⑥这些感应机器被定位或者广域连接在RFID网络、传感器网络还有GPS中。⑦信号或者信息在中层中通过云计算平台被这些传感设施所接受并和应用相连接。
①物联网系统很可能采用事件驱动架构。②在图 12C-2 中,物联网的发展以三层架构呈现。③顶层由各类驱动型应用构成。④物联网的应用空间十分广阔。⑤底层则代表了各类传感设备,即 RFID 标签、ZigBee 或其他类型的传感器,以及用于路径规划的 GPS 导航设备。⑥这些传感设备以 RFID 网络、传感器网络和 GPS 的形式,在本地或广域范围内互联。⑦这些传感设备采集到的信号或信息,通过中间层的云计算平台与各类应用相连。
英语单词打卡
