自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 神奇的口袋

问题描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2……an的

2020-11-18 23:41:19 299

原创 放苹果

问题描述:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入:第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。输出:– 对输入的每组数据M和N,用一行输出相应的K。设f(a, d) 为a个苹果,d个盘子的放法数目,则先对d作讨论如果d > a,必定至少有d-a个盘子是空的,去掉这些空盘子对摆放苹果方法数目不产

2020-11-18 23:27:14 171

原创 谁能拿到最多的硬币

来源医学部计算概论2018-罗英伟-潘成 (Hard)描述有n个硬币排成一排,每个硬币上用一个数字标识了它的价值。每次要你从最左边或者最右边拿出一个硬币。总共拿k次,写一个算法,使能拿到的硬币的价值和最大。关于输入输入包含两行,第一行为n, k;第二行包含n个数字,表示n个硬币的价值。1 <= k <= n <= 100000单个硬币的价值大于0且不超过10000.关于输出输出可以拿到的k个硬币最大的价值和。例子输入6 35 4 3 2 1 6例子输出15提

2020-11-17 13:20:25 861

原创 有趣的二进制

来源2018计算概论医学部(高良才)期末–李昕描述最近北京大学药学院的小晨在计概课上学习到二进制之后对其产生了浓厚的兴趣,在每次操作仅能移动相邻的0和1的前提下,她想知道把一个二进制数转换成另一个二进制数的最小操作数,关于输入输入共三行第一行为一个整数n (0 < n <= 200),代表二进制数的位数第二行为第一个二进制数的每一位第三行为第二个二进制数的每一位关于输出输出将第一个二进制数转换为第二个二进制数的最少操作数,如果答案不存在,则输出-1例子输入71 1 0

2020-11-17 13:10:29 1205

原创 喝奶茶

来源2018计算概论医学部(高良才)期末–黄一伦–中等描述计算概论班级一共有150名同学,学号分别为N1到N150。期末考试后,老师决定请部分同学喝奶茶,但是大家都很优秀,老师没办法进行挑选。于是助教们想了这样一种挑选幸运同学的方法:给每位同学一个编号牌,仅在正面写有该名同学编号i,编号与学号数字相同,即学号为Ni的同学得到的编号牌正面写有数字i。然后将所有编号牌正面朝上放到桌子上,同学们按照编号从小到大依次进行如下操作:N1同学把所有编号牌翻面一次;N2同学把编号为2、4、6、8 … 148

2020-11-17 13:08:34 321

原创 记数问题

来源计算概论医学部2016-白晓旷(罗英伟)描述试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1 到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次,数字2出现了1次。关于输入输入共 1 行,包含 2 个整数 n、x,之间用一个空格隔开。关于输出输出共 1 行,包含一个整数,表示 x 出现的次数。例子输入11 1例子输出4提示对于所有的数据,1≤ n ≤ 10000,0≤ x ≤ 9。

2020-11-17 13:07:06 430

原创 最简真分数序列

来源元培-From Whf描述所谓最简真分数是指分子小于分母,且不能约分的分数。给定 n(1 < n < 200)个非负整数(每个整数不超过3位),哪两个整数分别作为分子和分母能够构成最简真分数。输出所有的最简真分数组合;若没有,则输出NO。关于输入第1行为正整数个数n其后为n个非负整数,空格间隔。关于输出输出所有最简真分数,分子小的排在前面;若分子相同,分母小的排在前面。各分数之间用逗号间隔。若没有,则输出NO例子输入83 7 11 0 5 13 15 9例子输出3

2020-11-17 13:05:44 1095

原创 有效的密码

来源计算概论医学部2016-陶砺(熊瑞勤)描述由于北大未名BBS比较知名,容易引来黑客攻击。因此,对每个人的账户而言,密码越复杂,被黑客破解的可能性就越低。通常而言,密码至少由不少于六个字符组成,由以下规则判定密码是否安全:如果密码长度小于6位,则不安全如果组成密码的字符只有一类,则不安全如果组成密码的字符有两类,则为中度安全如果组成密码的字符有三类或以上,则为安全通常,把数字、大写字母、小写字母和其它符号归为四类不同的字符。关于输入输入的第一行是一个整数n,表明后面有n组密码输入。

2020-11-09 01:47:27 1226

原创 亲和数

两个数a和b,a的所有除本身以外的因数之和等于b,b的所有出本身以外的因数之和等于a,则称a,b是一对亲和数.例如,220和284就是一对亲和数.关于输入一个正整数n,1<=n<=100000关于输出所有亲和数对于a,b满足a,b均小于等于n每个亲和数对占一行,两个数之间用一个空格隔开,较小数在前,较大数在后对于多个亲和数对,以较小数递增的顺序输出他们...

2020-11-08 13:08:35 1630

原创 c++中的数组

define 预处理指令#define PI 3.1415926//符号常量,编译时直接替代,语句尾没有分号const修饰符const a=100;//变量在这个程序中保持初始化所赋的值//必须在声明的时候初始化,且在程序中不能改变

2020-11-08 13:08:05 172

原创 大整数除法(再看)

描述已知正整数k,2<=k<=9,由键盘输入长度为30位的是十进制正整数c,若c能被k整除,求kint main(){ int i,k,r,flag=0; char num[40]; cin>>num; for(k=2;k<=9;k++){ r=0; for(i=0;num[i]!='\0';i++){//迭代方法除k r=(r*10+num[i]-'\0')%k; } if(r==0){//能够被除尽 flag=1; cout&l

2020-11-08 13:07:51 295

原创 数字消失

来源计算概论医学部-袁珂(高良才)描述有一个包含n个整数的序列,序列中每个数都在[1, n]内,[1,n]中的数有些在这个序列中出现了1次或多次,而有些数没出现过。请输出[1, n]的整数中所有没出现过的整数。其中2 <= n <= 100.关于输入输入包括两行:第1行一个整数n第2行共n个整数,表示序列中的n个数,相互之间用空格隔开关于输出输出若干行,按从小到大的顺序,每行输出一个没出现的整数。例子输入73 5 1 1 4 3 4例子输出267#include

2020-11-08 13:07:38 223

原创 迷信的吴医生和机智的护士

来源北大医学部2013 - 赵玮泽描述吴医生是个很迷信的医生,他认为与4相关的数字都会带来厄运,因此他拒绝为所有挂号单序号中有数字4,或序号能被4整除的病人看病。(每张挂号单有一个唯的序号)小李是一名年轻的护士,虽然对吴医生的怪癖好不能理解,但他是内科最权威的医生, 小李无法阻止他的我行素。为了能让每个病人都顺利的看上病,小李决定只给病人们不含有数字4,并且不被4整除的序号挂单。今天门诊部刚开门,就来了n位病人都要挂吴医生的专家门诊(n为正整数,且 n<50),请问小李能开给这n位病人的挂号

2020-11-08 13:07:22 517

原创 关于二维数组的三个问题(再看)

蛇形填充数组描述用数字1,2,3,4,…蛇形填充规模为n*n的方阵,蛇形填充规则见示例数组关于输入输入为一行,为一个整数n,表示输出方阵的行数关于输出输出该方阵,相邻两个元素之间用空格间隔,每行最后一个元素后面没有空格例子输入4例子输出1 2 6 73 5 8 134 9 12 1410 11 15 16#include <iostream>using namespace std;int a[100][100];int main() { int n = 0;

2020-11-08 13:07:06 318

原创 冒泡排序法

#include <stdio.h>int main(){ int i, j, h, p; int a[7] = { 0 }; for (i = 0; i < 7; i++) { scanf("%d", &a[i]); } for (j = 0; j < 6; j++) {//外层大循环循环n-1次 for (h = 0; h < 6 - j; h++) {//内层小循环(n-j-1) if (a[h] < a[h + 1]) {

2020-11-08 13:06:47 118

原创 柱状图上的最大矩形

来源曲直描述给定n个非负整数,代表柱状图上每个柱的高度(宽度均为1),求这个柱状图中最大的矩形面积。例如对于输入"2 1 5 6 2 3",最大面积为10(见下图)关于输入第一行是一个整数n,代表有多少个柱形,n小于等于20000第二行有n个整数,依次为每个柱形的高度关于输出一个数字,即这个柱状图中最大的矩形面积,面积最大不超过int的表示范围例子输入62 1 5 6 2 3例子输出10#include<iostream>#include<algorithm&

2020-11-08 13:06:23 247

原创 例题(15.6) 细菌实验分组

来源北京大学医学部计算概论08期末考试题描述有一种细菌分为A、B两个亚种,它们的外在特征几乎完全相同,仅仅在繁殖能力上有显著差别,A亚种繁殖能力非常强,B亚种的繁殖能力很弱。在一次为时一个小时的细菌繁殖实验中,实验员由于疏忽把细菌培养皿搞乱了,请你编写一个程序,根据实验结果,把两个亚种的培养皿重新分成两组。关于输入输入有多行,第一行为整数n(n≤100),表示有n个培养皿。其余n行,每行有三个整数,分别代表培养皿编号,试验前细菌数量,试验后细菌数量。关于输出输出有多行:第一行输出A亚种培养

2020-11-08 13:05:57 1028

原创 常用函数

计算日期间隔计算素数

2020-11-07 08:14:34 89

原创 最长平台

描述已知一个数组,这个数组的一个平台(Plateau)就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在1,2,2,3,3,3,4,5,5,6中1,2-2,3-3-3,4,5-5,6都是平台。试编写一个程序,接收一个数组,把这个数组最长的平台找出来。在上面的例子中3-3-3就是最长的平台。关于输入输入数据有多组,每组两行。第一行有一个整数n,为数组元素的个数,n<10000。接下来一行为n个整数。(n个整数从小到大排列)最后会出现一个n=0,表示测试数据结尾。关于输出输出最

2020-11-07 08:14:18 401

原创 两数组最短距离

Description已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离。Input第一行为两个整数m, n(1≤m, n≤1000),分别代表数组f[], g[]的长度。 第二行有m个元素,为数组f[]。 第三行有n个元素,为数组g[]。Output数组的最短距离Sample Input5 51 2 3 4 56 7 8 9 10在这里插入代码片...

2020-11-07 08:14:04 695

原创 猜字游戏

描述计算机生成一个随机数,用户来猜,猜对数字但是位置不对用nB来表示,位置正确用nA来表示例如:随机数:2468

2020-11-07 08:13:52 100

原创 字符数组应用举例(四)

描述一辆肇事汽车的牌号是4位10进制数,牌号是一个完全平方数,并且从左至右越来越大.知识点itoa函数:将一个整数转换成一个字符串//1200->"1200",后者可以看成一个字符数组,四个元素和一个结束符char *itoa(int,字符串名,int);//第一个参数是要转换的数字,第二个参数是目标字符串,第三个参数是转移数字时所用的基数.//转换基数为10:十进制//转换基数为2:二进制//例:itoa(1089,buf,10);//返回的是buf的首地址,是指针类型//结果

2020-11-07 08:13:24 330

原创 字符数组应用举例(五)

描述以字符串的形式输入一个十六进制数(不超过5位),将其转换成十进制数输出.实现代码int main(){ char hex[6]; int number = 0; int demical; do{ cin.getline(hex,6); for(i=0;hex[i]!='\0';i++) { if(hex[i]<'0'||hex[i]<'A'||hex>'F')) break; } if(hex[i]=='\0') break; e

2020-11-07 08:13:10 269

原创 字符数组应用举例(六)(再看)

问题描述输入两个字符串a,b,判断a是否是b的子串,如果是,a在b中出现了几次?例如,a=“aba”,b=“ababab”,则a在b中出现了2次再如,a=“aaa”,b=“aaaaaa”,则a在b中出现了4次,而不是2次#include <cstring>//包括<cstring>,<string>,<string.h>三个库int main(){ char a[100],b[100]; int i,j,flag,la,lb,count=0;

2020-11-07 08:12:56 180

原创 大整数乘法(再看)

问题求两个不超过200位的非负整数的积#include <stdio.h>#include <iostream>#include <cstring>#include <math.h>using namespace std;int main(){ const int MAX_LEN=200; unsigned an1[MAX_LEN]; unsigned an2[MAX_LEN+1]; char seLine1[MAX_LEN+1]; u

2020-11-07 08:12:37 79

原创 字符数组

字符数组初始化char c[10]={'c',' ','P','r','o','g','r','a','m','s'};char c[]="I am happy";//如果一个字符数组的结束元素是'\0',则可以作为字符串字符变量或者字符数组赋值char str1[]="china";//合法str1[]="china";//不合法str2=str1;//不合法char c1,c2;c1='A';//合法char a[5];a[0]='C';//合法cin.getline()c

2020-11-07 08:12:15 172

原创 母牛生小牛问题(不懂)

有一头母牛,当年年初生一头小母牛,每头小母牛出生第四年年初(算当年,即三年后)也生一头小母牛,问20年后共有多少头母牛?#include <stdio.h>int main() { int i, firstYear, secondYear, thirdYear, forthYear; firstYear = 2; secondYear = 3; thirdYear = 4; for (i = 4; i <= 20; i++) { forthYear = firstYea

2020-11-06 13:40:11 1090

原创 数字的末位数的处理

描述输入一个整数,计算他的位数,并反向输出#include <stdio.h>int main() { int n = 0; scanf("%d", &n); while (n > 0) { printf("%d",n %10); n = n /10; } return 0;}

2020-11-06 11:44:56 191

原创 医院排号

来源医学院计概2015(高良才)-沈熳婷描述北大校医院最近更新了自己的网上排号系统,考虑到病人的病情程度不同,需要优先考虑病情较重的病人,病情相同的情况下需要把先在网上挂号的病人排在前面。现在给出了请求在同一天看病的n个病人网上挂号的顺序,但是校医院一天只能接收k个病人,请输出校医院当天接收的所有病人的看病顺序。关于输入第一行:一个整数t,表示数据的组数:对于每组数据,分别有两行:第一行:两个整数n 和k (k不一定小于n),表示请求在同一天看病的病人有n个,医院当天只能接受k个病人第二行:

2020-11-06 11:38:42 1343

原创 n-gram串频统计(再看)

描述在文本分析中常用到n-gram串频统计方法,即,统计相邻的n个单元(如单词、汉字、或者字符)在整个文本中出现的频率。假设有一个字符串,请以字符为单位,按n-gram方法统计每个长度为 n 的子串出现的频度,并输出最高频度以及频度最高的子串。所给的字符串只包含大小写字母,长度不多于500个字符,且 1 < n < 5。如果有多个子串频度最高,则根据其在序列中第一次出现的次序依次输出,每行输出一个,如果最高频度不大于1,则输出NO。输入第一行为n;第二行为字符串。输出输出最高频度以

2020-11-06 11:33:32 532

原创 回文子串(再看)

描述给定一个字符串,输出所有回文子串.回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如 abba cccdeedccc 都是回文字符串.我们要查找的子串长度应该>=2关于输入输入是一行,一个长度500以内的字符串,比如abcddcbaab关于输出输出所有的回文子串,一个满足条件的子串一行.子串长度小的优先输出,出现在原始字符串靠左的子串优先输出,比如对于abcddcbaab输出:ddaacddcbaabbcddcbabcddcba例子输入12332112

2020-11-06 11:31:54 492 1

原创 基因检测(再看)

Description用一个字符串表示一段基因,例如:“CTATGGGTTT”。两段基因的相似度定义为它们所包含的最大公共子串的长度。例如:“CCTTGG”和“TGGGC”的最大公共子串为“TGG”,它的长度为3,则我们称“CCTTGG”和“TGGGC”的相似度为3。现给定两段基因,要求计算它们的相似度。Input输入第一行包含一个正整数N(0<N<100),表示测试数据的数目;接下来N行,每行包含两个字符串(每个字符串长度小于等于20),用一个空格隔开,分别表示给定的两段基因。Output对于每

2020-11-06 11:26:13 431

原创 将字符串中的小写字母转换成大写字母

来源助教描述给定一个字符串,将其中所有的小写字母转换成大写字母。关于输入若干行,每行是一个字符串(长度不超过100)。输入以Ctrl+Z结束,也就是强行中断输入流,此时cin表达式运行结果为false。在正常情况下cin表达式的运行结果都是true。因此,本题可以使用while(cin>>str){处理当前行的字符串}关于输出将输入的字符串中所有小写字母转换成大写字母后的字符串。例子输入helloworld123Ha例子输出HELLOWORLD123HA#inc

2020-11-06 10:53:38 9256 3

原创 例题(12.8) 单词替换

题目输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成(单词都是英文字母组成),单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。关于输入输入包括3行:第1行是包含多个单词的字符串 s第2行是待替换的单词 a (长度<=100)第3行是a将被替换的单词 b (长度<=100)s, a, b 最前面和最后面都没有空格。关于输出输出只有 1 行:将s中所有单词a替换成b之后的字符串。如果s

2020-11-06 10:53:07 1061

原创 例题(12.3) 忽略大小写的字符串比较 (1016)

来源计算概论05描述一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到’\0’为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如"Hello"和"hello"在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。关于输入输入为两行,每行一个字符串,共两个字符串。(

2020-11-05 11:43:21 611

原创 1020 跳格问题(再看)

来源计算概论05描述有一种游戏,在纸上画有很多小方格,第一个方格为起点(S),最后一个方格为终点。有一个棋子,初始位置在起点上,棋子每次可移动一次,棋子在起点时,可向前移动一个格子到第二个方格内;棋子在其他方格内时,可根据方格内的数字Ni进行移动。如果Ni大于零,就向前移动Ni个格子;如果Ni小于零,就向后移动-Ni个格子;如果Ni等于零,则此次原地不动一次,在下一步移动时可向前移动一步到下一个格子。显然,如果仅按此方案,会出现棋子永远移动不到终点的情形。为防止这种情况发生,我们规定,当棋子再次来到它

2020-11-05 11:40:29 647 1

原创 配对碱基链

描述脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。关于输入第一行是一个正整数n,表明共有n条要求解的碱基链。以下共有n行,每行用一个字符串表示一条碱基链。这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。

2020-11-05 11:38:15 1427

原创 集体照

来源计算概论医学部-魏爽(高良才)描述医学部口腔3班n位同学约定拍集体照,n大于1且不超过100。摄影师要求同学按照身高站成两排,保证第二排的人身高都要大于等于第一排的人,且第二排的人数和第一排的人数相等或者比第一排多一个人。输入n位同学的身高,请问第二排中身高最矮的人的身高是多少?关于输入输入有多组,每组有2行,第一行输入一个整数n。第二行有n个整数,对应n位同学的身高(厘米),各数字间以空格隔开。当输入n==0时,结束输入。关于输出输出有多行,按输入顺序,每行为对应组中第二排最矮的身

2020-11-05 11:20:34 874

原创 短信计费

描述用手机发短信,一般一条短信资费为0.1元,但限定每条短信的内容在70个字以内(包括70个字)。如果你所发送的一条短信超过了70个字,则大多数手机会按照每70个字一条短信的限制把它分割成多条短信发送。假设已经知道你当月所发送的每条短信的字数,试统计一下你当月短信的总资费。关于输入第一行是整数n,表示当月短信总条数,其余n行每行一个整数,表示各条短信的字数。关于输出当月短信总资费,单位为元,精确到小数点后1位。例子输入10394942614414742723546例子输出

2020-11-05 10:56:31 4194 1

原创 习题(10-2) 计算两个日期之间的天数

描述给定两个年月日,计算之间的天数.比如2010-1-1和2010-1-3 之间差2天。year=1,2,…,3000.补充:闰年是:(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0),闰年的2月份有29天。关于输入第一行startYear startMonth startDay第二行endYear endMonth endDay关于输出输出只有一行是两个日期之间的天数例子输入2008 1 12009

2020-11-05 10:33:26 1084

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除