随笔分类 -  刷题

摘要:递归 一、分治 二、递归 其中重要的是① 递归边界 :用来返回最简单底层的结果② 递归式 :用来减少数据规模并向下一层递归 三、例 1.全排列 include include using namespace std; const int maxn = 11; //P为当前排列,hashtable记录 阅读全文
posted @ 2020-04-08 22:40 方知有 阅读(180) 评论(0) 推荐(0) 编辑
摘要:散列(hash) 以空间换时间,建立映射函数,将元素通过一个函数转换为整数,使得该整数可以尽量唯一地代表这个元素 一、整数散列 1.类型 给定N个数,M个数,问M个数中的数是否在N个数中出现过 以N个数中的数作为数组下标,记录N个数中的数的出现情况 给定N个数,M个数,问M个数中的数在N数中出现的个 阅读全文
posted @ 2020-03-25 22:29 方知有 阅读(136) 评论(0) 推荐(0) 编辑
摘要:1.输入 scanf %c:读入单个字符,可读入空格以及换行符 %s:读入时以空格以及换行符为结束标志 %[](字符串集合): %[0-9]表示只读入'0'到'9'之间的字符 %[a-zA-Z]表示只读入字母 %[^a-z]就表示读入小写字母之外的字符 %n[^=]读入 = 号前的至多n 个字符 g 阅读全文
posted @ 2020-03-15 23:10 方知有 阅读(362) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 读入字符串,并将字符串翻转后,存储到向量中,设置计数器,并以第一个字符串,为比较字符串,遍历向量中的字符串,对字符串从头到尾进行比较,记录公共字母,不相等时跳出循环 输出结果 注意点: 使用getline读取一行时,首先要对getchar或者其他输入语句读取换行符,确保getline 阅读全文
posted @ 2020-03-15 00:35 方知有 阅读(200) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 将用户名和密码一起读入到字符串,然后对字符串进行遍历,依据题目对字符串进行改变,将改变的字符串存储到向量中,最后依据向量的大小分别依据题意进行输出 注意点: 当没有需要修改二点密码时,需注意带到输出语句的单复数 代码: 1 #include<iostream> 2 #include< 阅读全文
posted @ 2020-03-14 23:38 方知有 阅读(131) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 先用字符串数组存储输入数字,然后依据num[i]-'0'对输入数字求和。然后对求和后的数字,进行分割,存储到数组中,然后遍历数组,依据存储英文单词的字符串二维数组进行输出 注意点: 注意输出末尾不能有空格,以及求和结果为0的情况 代码: 1 #include<iostream> 2 阅读全文
posted @ 2020-03-13 23:23 方知有 阅读(117) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 将数字A、B的和转换为字符串,由字符串为和添加逗号,对字符串遍历,寻找合适的位置进行插入 注意点: 在对字符串的遍历中,不仅要考虑到每三个添加一个逗号,还有考虑到该位置是否符合,如果前面没有数字,则不添加逗号 代码: 1 #include<iostream> 2 #include<s 阅读全文
posted @ 2020-03-13 22:50 方知有 阅读(156) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 将输入数字存储到数组中,然后再将两数对齐,再翻转,从数组头开始遍历,即从数字的个位开始遍历,依据题意进行变换,遍历完后,再进行一次翻转,然后输出结果 注意点: 此题较坑,测试点2、5为数字B长度小于数字A长度的情况,需对数字B在前面补0至与数字A等长,然后再继续换算 代码: 1 #i 阅读全文
posted @ 2020-03-13 22:26 方知有 阅读(274) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 由输入获取相关信息,得到指数和科学计数的前部分数字,然后再依据指数的正负分别进行输出 注意点: 依据转换后的数据进行格式输出 代码: 1 #include<iostream> 2 #include<string> 3 using namespace std; 4 5 int main 阅读全文
posted @ 2020-03-12 23:30 方知有 阅读(182) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 扫描前两个字符串,寻找第一队相同位置的A~G的大写字母,之后求出其与字符‘A’的距离 在步骤1的基础上,继续往后寻找,直到碰到第一对相同位置的0~9或A~N的字符,将其分别转换为0~9或10~13 扫描后两个字符串,寻找第一队相同位置的A~Z或a~z的英文字母,获取位置 注意点: 注 阅读全文
posted @ 2020-03-12 21:09 方知有 阅读(143) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 建立二维字符数组,存储输入数据,每行存储一个单词,读取数据时,利用计数器记录输入单词个数,然后计数器和二维数组,进行逆序输出 注意点: 注意题目说所的输出末尾无多余空格 代码: 1 #include<iostream> 2 using namespace std; 3 //依据题目确 阅读全文
posted @ 2020-03-12 20:04 方知有 阅读(116) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 先用字符串数组存储输入数字,然后依据num[i]-'0'对输入数字求和。然后对求和后的数字,进行分割,存储到数组中,然后遍历数组,依据存储汉语拼音的字符串二维数组进行输出 注意点: 注意输出末尾不能有空格 代码: 1 #include<iostream> 2 #include<std 阅读全文
posted @ 2020-03-08 23:35 方知有 阅读(192) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 构建校验码的映射表,使用字符串数组存储输入号码。对字符串数组进行遍历,并利用num[i]-'0'进行运算和判断是否符合题目条件(前17位不出现字母),对求和结果进行取模并由映射表进行判断,依据前述的各种判断,输出结果 注意点: 利用数组存储输入数字,存储权重;利用映射表存储校验码对应 阅读全文
posted @ 2020-03-08 22:17 方知有 阅读(199) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 由题得知输入得正整数位数很大,故超出C++整型的范围,于是使用字符串数组进行存储。另外使用一个数组对输入数字的个位数字进行统计,然后进行输出 注意点: 字符串数组中,每个位置存储的元素的类型为char类型,故利用ASCLL码获取其在C++中的整型数字,res[num[i]-'0']+ 阅读全文
posted @ 2020-03-08 21:28 方知有 阅读(181) 评论(0) 推荐(0) 编辑
摘要:题目描述: 让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4 输入格式: 每个测试输入包含 1 阅读全文
posted @ 2020-03-08 20:50 方知有 阅读(188) 评论(0) 推荐(0) 编辑
摘要:题目描述: 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统一—就如海格告诉哈利的:“17个银西可(Sickle)兑一个加隆(Galleon),29个纳特(Knut)兑一个西可,很容易”。你的任务是编写一个程序来计算A+B,其中A和B是按照“Galleon.Sickle.Knut”的标准格式 阅读全文
posted @ 2020-03-03 23:18 方知有 阅读(121) 评论(0) 推荐(0) 编辑
摘要:题目描述: 给定三个[0,168]范围内的十进制整数,将它们转换为十三进制后按顺序输出。 单词:radix--基数 输入格式: 输入三个十进制数,用空格隔开。 输出格式: 首先输出#,然后是6位数,其中英文字符必须大写。如果单色只有1位数字长,必须其左侧打印0。 样例: 输入:15 43 71 输出 阅读全文
posted @ 2020-03-03 22:56 方知有 阅读(149) 评论(0) 推荐(0) 编辑
摘要:题目描述: 给出两个整数n、b,问十进制整数n在b进制下是否是回文数,若是,则输出Yes;否则,输出No。在此之后输出n在b进制下的表示。 单词:Palindromic Number--回文数;decimal--十进制的。 输入格式: 输入用空格分隔的两个数,第一个数是十进制数n(0<N≤10​9) 阅读全文
posted @ 2020-03-03 21:47 方知有 阅读(137) 评论(0) 推荐(0) 编辑
摘要:题目: 如果你是哈利波特迷,你会知道魔法世界有它自己的货币系统——就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。 输入格式: 输入在1 阅读全文
posted @ 2020-03-02 22:32 方知有 阅读(174) 评论(0) 推荐(0) 编辑
摘要:题目描述: 输入两个非负10进制整数A和B(≤230-1),输出A+B的D(1<D≤10)进制数。 输入格式: 输入在一行中依次给出3个整数A、B和D。 样例: 输入:123 456 8 输出:1103 思路: 先计算A+B的值,然后再将其转换为D进制。可使用“除基取余法”。 注意点: A+B的范围 阅读全文
posted @ 2020-03-02 21:55 方知有 阅读(172) 评论(0) 推荐(0) 编辑