- 博客(208)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 《HeadFirst设计模式(第二版)》第十章代码——状态模式
上面的代码很明显极其不利于本维护:比如要添加一个新的状态--每次投入25分钱都能有十分之一的概率获得两个糖果。允许对象内部状态改变时改变其行为。对象看起来好像改变了他的类。
2023-08-19 10:26:36
1768
原创 《HeadFirst设计模式(第二版)》第九章代码——迭代器模式
迭代器提供一种方式,可以访问一个聚合对象中的元素而又不暴露其潜在实现。同时把遍历的任务放到迭代器上而不是聚合上,这就简化了聚合的接口和实现(让聚合只需负责管理对象集合即可),满足单一责任原则。
2023-08-18 12:47:26
1556
原创 2049:【例5.19】字符串判等
2049:【例5.19】字符串判等 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 13135 通过数: 4599 【题目描述】 判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。 【输入】 两行,每行包含一个字符串。 【输出】 若两个字符串相等,输出YES,否则输出NO。 思路: 逐一读取字...
2022-04-12 23:45:49
1017
2
原创 1310:【例2.2】车厢重组
1310:【例2.2】车厢重组时间限制: 1000 ms 内存限制: 65536 KB提交数: 24917 通过数: 15294【题目描述】在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初...
2022-03-15 08:49:58
523
原创 2048:【例5.18】串排序
2048:【例5.18】串排序时间限制: 1000 ms 内存限制: 65536 KB提交数: 8883 通过数: 4206【题目描述】对给定的n(1≤n≤20)个国家名(国家名字长度不超过20),按其字母的顺序输出。【输入】第一行为国家的个数n;以下n行为国家的名字。【输出】n行,排序后的国名。分析:直接比较即可,当然强制转成首字符ascii码进行比较也行#include<iostream>using std::...
2022-03-14 19:36:57
1684
原创 2047:【例5.16】过滤空格
2047:【例5.16】过滤空格时间限制: 1000 ms 内存限制: 65536 KB提交数: 10702 通过数: 6777【题目描述】过滤多余的空格。一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。【输入】一行,一个字符串(长度不超过200200),句子的头和尾都没有空格。【输出】过滤之后的句子。分析:在输出的过程中减少空格#include<iostream>using std::cin;u...
2022-03-14 19:28:51
1719
原创 2046:【例5.15】替换字母
2046:【例5.15】替换字母时间限制: 1000 ms 内存限制: 65536 KB提交数: 10257 通过数: 5442【题目描述】在应用计算机编辑文档的时候,我们经常遇到替换任务。如把文档中的“电脑”都替换成“计算机”。现在请你编程模拟一下这个操作。【输入】输入两行内容,第1行是原文(长度不超过200个字符),第2行包含以空格分隔的两个字符A和B,要求将原文中所有的字符A都替换成字符B,注意:区分大小写字母。分析:使用string输入,...
2021-12-25 12:53:42
1818
原创 1128:图像模糊处理
1128:图像模糊处理 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 33015 通过数: 14191 【题目描述】 给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理: 1.四周最外侧的像素点灰度值不变; 2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。 【输入】 第一行包含两个整数n和m,表示图...
2021-12-24 14:20:15
2090
2
原创 C++、C二维数组的内部结构
#include<iostream>using std::cout;using std::cin;using std::endl;//二维数组的内部结构int main(){ int a[3][3] = {1,2,3,4,5,6,7,8,9 }; //这里a是数组名,也就是数组的首地址,其实际结构为: int(*p)[3] = a; //这个p是和a等价的 cout << (*p)[0] << endl;//对指针p解引用之后就是一个数组,.
2021-12-21 10:54:16
831
原创 为什么数组作为参数时还要以数组长度作为参数
最近看到这么一道题目://请输出下面代码的结果://答案:6#include<iostream>using std::cin;using std::cout;using std::endl;int function(char arr[]);int main(){ char array[] = "ABCDEF"; cout << function(array) << endl;}int function(char arr[]){ in
2021-12-19 17:22:04
1160
3
原创 1127:图像旋转
1127:图像旋转时间限制: 1000 ms 内存限制: 65536 KB提交数: 25995 通过数: 15657【题目描述】输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。【输入】第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤100。接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0∼255之间。【输出】m行,每行n个整数,为顺时针旋转90度后...
2021-12-19 16:55:04
806
原创 1126:矩阵转置
1126:矩阵转置时间限制: 1000 ms 内存限制: 65536 KB提交数: 35838 通过数: 16627【题目描述】输入一个n行m列的矩阵A,输出它的转置AT。【输入】第一行包含两个整数n和m,表示矩阵A的行数和列数(1<=n<=100,1<=m<=100)。接下来n行,每行m个整数,表示矩阵A的元素。相邻两个整数之间用单个空格隔开,每个元素均在1~1000之间。【输出】m行,每行n个整数,为矩阵A的转...
2021-12-13 20:12:35
1245
原创 1125:矩阵乘法
1125:矩阵乘法时间限制: 1000 ms 内存限制: 65536 KB提交数: 26195 通过数: 13992【题目描述】计算两个矩阵的乘法。n×m阶的矩阵A乘以m×k阶的矩阵B得到的矩阵C 是n×k阶的,且C[i][j] = A[i][0]×B[0][j] + A[i][1]×B[1][j] + …… +A[i][m-1]×B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。【输入】第一行为n, m, k,表示A矩阵是n行m列,B矩...
2021-12-09 16:39:39
1639
原创 1124:矩阵加法
1124:矩阵加法时间限制: 1000 ms 内存限制: 65536 KB提交数: 30806 通过数: 19860【题目描述】输入两个n行m列的矩阵A和B,输出它们的和A+B。【输入】第一行包含两个整数n和m,表示矩阵的行数和列数(1≤n≤100,1≤m≤100)1≤n≤100,1≤m≤100)。接下来n行,每行m个整数,表示矩阵A的元素。接下来n行,每行m个整数,表示矩阵B的元素。相邻两个整数之间用单个空格隔开,每个元素均在1∼1000之...
2021-12-09 16:34:49
639
原创 1123:图像相似度
1123:图像相似度时间限制: 1000 ms 内存限制: 65536 KB提交数: 27610 通过数: 17462【题目描述】给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。【输入】第一行包含两个整数m和n,表示图像的行数和列数,中间用单个空格隔开。1≤m≤100, 1≤n≤100。之后m行,每行...
2021-12-07 23:04:48
1022
原创 1122:计算鞍点
1122:计算鞍点时间限制: 1000 ms 内存限制: 65536 KB提交数: 30591 通过数: 17364【题目描述】给定一个5×5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8)。11 3 5 6 912 4 7 8 1010 5 6 9 118 6 4 7 215 10 11 20 2...
2021-12-07 23:02:49
1069
原创 1121:计算矩阵边缘元素之和
1121:计算矩阵边缘元素之和时间限制: 1000 ms 内存限制: 65536 KB提交数: 36412 通过数: 21033【题目描述】输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。【输入】第一行分别为矩阵的行数m和列数n(m<100,n<100),两者之间以一个空格分开。接下来输入的m行数据中,每行包含n个整数,整数之间以一个空格分开。【输出】输出...
2021-12-06 17:08:37
1242
原创 1120:同行列对角线的格
分析:这里问题就难在主对角线(左上角到右下角)和副对角线(左下角到右上角),两种及其各自的同方向的更短的对角线上:主对角线:i == j;主对角线下面:i > j;主对角线上面 : i < j;副对角线: i + j == n + 1;副对角线上面:i + j < n+1;副对角线下面:i + j >n+1;对这些规律有疑虑的话可以自己用纸币画一下就可以找到规律了。#include<iostream>using std::cin;...
2021-12-06 17:06:31
1074
原创 1119:矩阵交换行
1119:矩阵交换行时间限制: 1000 ms 内存限制: 65536 KB提交数: 42130 通过数: 25565【题目描述】给定一个5×5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果。【输入】输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开。第6行包含两个整数m、n,以一个空格分开(1≤m,n≤5)。【输出】输出交换之后的矩阵,矩阵的每一行元素占一行...
2021-12-05 12:43:49
683
原创 2045:【例5.13】蛇形填数
2045:【例5.13】蛇形填数时间限制: 1000 ms 内存限制: 65536 KB提交数: 5062 通过数: 2695【题目描述】在n×n方阵里填入1,2,3,…,n×n,要求填成蛇形。例如n=4时方阵为:10 11 12 19 16 13 28 15 14 37 6 5 4其中,n≤20。【输入】输入n。【输出】输出题述方阵。n行,每行各数之间用一个空格隔开。分析:这题我想了好久啊。。。。。可以按照环来一...
2021-12-05 12:40:45
1335
原创 2044:【例5.12】回文字串
2044:【例5.12】回文字串时间限制: 1000 ms 内存限制: 65536 KB提交数: 6316 通过数: 2496【题目描述】输入一串字符,字符个数不超过100,且以“.”结束。 判断它们是否构成回文。【输入】一行字符串。【输出】是否为回文串。是输出“Yes”,否输出“No。”分析:主要在于后面有一个.号,从倒数第二个和第一个进行比较即可。#include<iostream>using std::ci...
2021-12-04 23:00:58
1237
原创 2043:【例5.11】杨辉三角形
2043:【例5.11】杨辉三角形时间限制: 1000 ms 内存限制: 65536 KB提交数: 6968 通过数: 4548【题目描述】例5.11 打印杨辉三角形的前n(2≤n≤20)行。杨辉三角形如下图:当=5时 1 1 1 1 2 1 1 3 3 11 4 6 4 1输出:11 11 2 11 3 3 11 4 6 4 1【输入】...
2021-12-04 22:58:43
819
类模板对象做函数参数时为什么要用引用?
2021-09-09
c++二进制文件读取时为什么会出现不存在read成员?
2021-08-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人