第一题题目:
给你一串正整数的连加表达式,完成这个表达式的计算。
个人总结:
无
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string chuan;
while (cin >> chuan)
{
chuan = '+' + chuan;
int sum = 0;
int count = 0;
for (char c : chuan)
{
if (c >= '0' && c <= '9')
{
count = count * 10 + c - '0';
}
else if (c == '+')
{
sum += count;
count = 0;
}
}
sum += count;
count = 0;
cout << sum << endl;
}
return 0;
}

第二题题目:
序列是在数学世界中一种非常有趣的数字现象,它通过某一规则来产生数字,使数字变得有趣、变幻无穷。很多数学家对序列这种事物产生了浓厚的兴趣,花了很多时间对其进行研究,明明就是其中的一位。一天,他又在研究一种新的序列产生规则,该序列的规则如下:
1) 第1轮,写出两个1,即11;
2) 第2轮,在它们中间插入2,成为121;
3) 第3轮,在上面数中每两个相邻的和为3的数之间插入3,成为13231;
4) 以此类推下去,第n轮,在第n-1轮的数字的基础上,每两个相邻的和为n的数之间插入n。
明明根据这个规则开始构造序列。开始还觉得容易,但是越到后面,明明发现构造序列的计算量越来越大,计算难度也越来越高,计算速度也越来越慢。于是,明明就求助于你这位程序设计专家,能否帮他写一个程序,构造出序列的前9项,然后当明明需要知道序列中的哪一项的时,你就把那一项的数字告诉明明。
明明的问题可以归结为:根据题目描述中所描述的序列产生规则构造序列的前9项,然后告诉你一个正整数n,要求你输出序列的第n项。
个人总结:
1.在原字符串中插入不易操作,所以采用新建一个字符串逐个添加,最后再更新一下即可。
2.逐个插入时int类型要转化成char类型。
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n;
while (cin >> n)
{
string num;
num = "11";
for (int round = 2; round <= n; round++)
{
string new_num;
for (int i = 0; i < num.size(); i++)
{
new_num += num[i];
if (i < num.size() - 1)
{
int a = num[i] - '0';
int b = num[i + 1] - '0';
if (a + b == round)
new_num += (char)('0' + round);
}
}
num = new_num;
}
cout << num << endl;
}
return 0;
}

第三题题目:
输入一串数字,找出其中最长的不超过4个字符的质数子串。若有多个答案,则找出其中数值最大的一个。
个人总结:
1.当字符串长度小于4时需要单独判断,因为最大长度此时是字符串长度而不是4。
2.截取字符串中某一部分用string.substr()函数,string类型转化成int类型用stoi(),int类型会自动保留整数,而float和double类型会默认保留6位小数。
代码:
#include<iostream>
#include<string>
using namespace std;
bool judge(int num)
{
bool yn = true;
for (int i = 2; i < num; i++)
{
if (num % i == 0)
{
yn = false;
break;
}
}
return yn;
}
int main()
{
string number;
while (cin >> number)
{
int max = 0;
for (int i = 1; i <= 4; i++)
{
int str_len = (int)number.size();
if (i > str_len)
continue;
for (int j = 0; j <= str_len - i; j++)
{
string sub = number.substr(j, i);
int num = stoi(sub);
if (judge(num) == true && num >= 2)
{
if (num > max)
max = num;
}
}
}
cout << max << endl;
}
return 0;
}

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

①法国的发明者约瑟夫-玛丽·贾卡尔,在设计一个自动织布机时,用过薄的、打孔的木制板子,为了控制波浪形的复杂设计。②在19世纪80年代一位统计学家赫尔曼·霍尔瑞斯想出了一个关于打孔卡片的主意,与贾卡尔用于处理数据的木板类似。③采用一个系统,在电子网络中使用打孔卡片,他能够给1890年的美国人口普查编写数据信息。
①法国发明家约瑟夫 - 马里・雅卡尔在设计自动织布机时,使用了薄的穿孔木板来控制复杂花纹的编织。②在 19 世纪 80 年代,美国统计学家赫尔曼・霍尔瑞斯提出了使用类似雅卡尔木板的穿孔卡来处理数据的想法。③通过一套将穿孔卡通过电触点的系统,他为 1890 年美国人口普查编制了统计信息。
1.分析引擎
①同样在19世纪,英国的数理学家和发明家查尔斯·巴贝奇制造出了能够打印的现代数字计算机。②他想出一台数字机器,例如差分机被设计出来能够解决复杂的数理问题。③许多历史学家考虑到巴贝奇还有他的合伙人数理学家奥古斯特·阿达·拜伦,是真正的现代数字计算机的先锋。④巴贝奇的一个设计是分析引擎,具有现代计算机的许多特征。⑥它在打孔卡片的装置前面有一个输入流,一个"存储器"用于存储数据,一个"工厂"用于数字运算,一个打印机用于作长期的记录。⑦巴贝奇在这个主意的制作中失败了,尽管以当时的科技来看那是可行的。
①同样在 19 世纪,英国数学家和发明家查尔斯・巴贝奇提出了现代数字计算机的原理。②他构思了多种机器,例如差分机,这些机器被设计用于处理复杂的数学问题。③许多历史学家认为巴贝奇和他的合作者、数学家奥古斯塔・埃达・拜伦是现代数字计算机的真正先驱。巴贝奇的设计之一 ------ 分析机,具备了现代计算机的许多特征:⑥它有以穿孔卡片组形式存在的输入流、用于存储数据的 "存储器"、用于算术运算的 "运算器",以及能生成永久记录的打印机。⑦尽管巴贝奇未能将这一构想付诸实践,但在当时,这在技术上或许是可行的。
2.早期电脑
①模拟信号计算机在19世纪晚期开始被制造。②早期的计算模式采用转轴和齿轮的方式。③很多方程的近似解,在其他地方采用这种机器去评估太难被解决。④罗德·开尔文构建了一个潮汐预测装置,是一个专用的模拟信号计算机。⑤在一战和二战期间,这些机器和电子模拟信号计算机系统被用于潜艇鱼雷航向预测器还有飞行器的爆炸信号灯控制。⑥其他的系统被设计用于预测密西西比河的春汛。
①模拟计算机在 19 世纪末开始被制造出来。②早期的模型通过旋转轴和齿轮进行计算。③对于用其他任何方法都难以求解的方程,其数值近似可以通过这类机器来计算。④开尔文勋爵制造了一台机械潮汐预测仪,这是一台专门的模拟计算机。⑤在第一次和第二次世界大战期间,机械的,以及后来的电子模拟计算系统被用作潜艇中的鱼雷航向预测器和飞机中的轰炸瞄准控制器。⑥另一个系统被设计用于预测密西西比河流域的春季洪水。

英语单词打卡
