
信息学奥数一本通
hipoole
这个作者很懒,什么都没留下…
展开
-
1164:digit函数
1164:digit函数【题目描述】在程序中定义一函数digit(n,k)digit(n,k),它能分离出整数nn从右边数第kk个数字。【输入】正整数nn和kk。【输出】一个数字。【输入样例】31859 3【输出样例】8代码#include <iostream>using namespace std;int dig(int n,int k ){ if(k...原创 2020-01-03 23:09:12 · 935 阅读 · 0 评论 -
1163:阿克曼(Ackmann)函数
1163:阿克曼(Ackmann)函数【题目描述】阿克曼(Ackmann)函数A(m,n)A(m,n)中,m,nm,n定义域是非负整数(m≤3,n≤10)(m≤3,n≤10),函数值定义为:【输入】输入mm和nn。【输出】函数值。【输入样例】2 3【输出样例】9代码#include <iostream>using namespace std;int ack(...原创 2020-01-03 23:04:01 · 637 阅读 · 0 评论 -
1162:字符串逆序
1162:字符串逆序【题目描述】输入一串以‘!’结束的字符,按逆序输出。【输入】如题述。【输出】如题述。【输入样例】abc!【输出样例】cba代码#include <iostream>using namespace std;string s;int i=0;void fc(char ch ){ if(ch!='!') fc(s[++i]); if(...原创 2020-01-03 22:55:24 · 945 阅读 · 0 评论 -
1161:转进制
1161:转进制【题目描述】用递归算法将一个十进制数X转换成任意进制数M(M≤16)。【输入】一行两个数,第一个十进制数X,第二个为进制M。【输出】输出结果。【输入样例】31 16 {将十进制31转化为十六进制数}【输出样例】1F代码#include <iostream>using namespace std;string a="0123456789ABCD...原创 2020-01-03 22:34:52 · 1081 阅读 · 1 评论 -
1160:倒序数
1160:倒序数【题目描述】输入一个非负整数,输出这个数的倒序数。例如输入123,输出321。【输入】输入一个非负整数(保证个位不为零)。【输出】输出倒序的数。【输入样例】123【输出样例】321代码#include <iostream>using namespace std;void fc(int n){ cout<<n%10; if(...原创 2020-01-03 22:12:46 · 2123 阅读 · 0 评论 -
1159:斐波那契数列
###1159:斐波那契数列用递归函数输出斐波那契数列第n项。0,1,1,2,3,5,8,13……【输入】一个正整数n,表示第n项。【输出】第n项是多少。【输入样例】3【输出样例】1代码#include <iostream>using namespace std;int fb(int n){ if(n<=2) return n-1; else ret...原创 2020-01-03 21:52:36 · 541 阅读 · 0 评论 -
1158:求1+2+3+...
###1158:求1+2+3+…【题目描述】用递归的方法求1+2+3+……+N1+2+3+……+N的值。【输入】输入NN。【输出】输出和。【输入样例】5【输出样例】15代码#include <iostream>using namespace std;int fsum(int n){ if(n==1) return 1; else return fsum(...原创 2020-01-03 21:46:27 · 349 阅读 · 0 评论 -
1411:区间内的真素数
1411:区间内的真素数【题目描述】找出正整数M和N之间(N不小于M)的所有真素数。真素数的定义:如果一个正整数P为素数,且其反序也为素数,那么P就为真素数。例如,11,13均为真素数,因为11的反序还是为11,13的反序为31也为素数。【输入】输入两个数M和N,空格间隔,1≤M≤N≤100000。【输出】按从小到大输出M和N之间(包括M和N)的真素数,逗号间隔。如果之间没有真素数...原创 2020-01-03 21:34:16 · 3909 阅读 · 0 评论 -
1413:确定进制
1413:确定进制【题目描述】69=42对于十进制来说是错误的,但是对于13进制来说是正确的。即, 6(13) 9(13)= 42(13), 而 42(13)=4131+2130=54(10)。你的任务是写一段程序,读入三个整数p、q和 r,然后确定一个进制 B(2≤B≤40) 使得 p * q = r。 如果 B 有很多选择, 输出最小的一个。例如:p=11, q=11, r=121.则...原创 2020-01-03 20:39:44 · 1060 阅读 · 0 评论 -
1412:二进制分类
1412:二进制分类时间限制: 1000 ms 内存限制: 65536 KB提交数: 5176 通过数: 3496【题目描述】若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。例如:(13)10=(1101)2,其中1的个数为3,0的个数为1,则称此数为A类数;(10)10=(1010)...原创 2020-01-03 20:19:56 · 583 阅读 · 0 评论 -
1410:最大质因子序列
1410:最大质因子序列【题目描述】任意输入两个正整数m,n(1<m<n≤5000)m,n(1<m<n≤5000),依次输出mm到nn之间每个数的最大质因子(包括mm和nn;如果某个数本身是质数,则输出这个数自身)。【输入】一行,包含两个正整数mm和nn,其间以单个空格间隔。【输出】一行,每个整数的最大质因子,以逗号间隔。【输入样例】5 10【输出样例】5...原创 2020-01-02 21:40:03 · 505 阅读 · 0 评论 -
1409:判决素数个数
1409:判决素数个数【题目描述】输入两个整数XX和YY,输出两者之间的素数个数(包括XX和YY)。【输入】两个整数XX和YY(1≤X,Y≤1051≤X,Y≤105)。【输出】输出一个整数,表示XX,YY之间的素数个数(包括XX和YY)。【输入样例】1 100【输出样例】25代码#include <iostream>using namespace std;bo...原创 2020-01-02 21:10:58 · 2028 阅读 · 0 评论 -
1408:素数回文数的个数
1408:素数回文数的个数【题目描述】求11到n之间(包括n),既是素数又是回文数的整数有多少个。【输入】一个大于11小于1000的整数n。【输出】11到n之间的素数回文数个数。【输入样例】23【输出样例】1【提示】提示:回文数指左右对称的数,如:292,333。代码#include <iostream>using namespace std;bool i...原创 2020-01-02 21:06:51 · 1176 阅读 · 0 评论 -
1405:质数的和与积
1405:质数的和与积时间限制: 1000 ms 内存限制: 65536 KB提交数: 5958 通过数: 4484【题目描述】两个质数的和是S,它们的积最大是多少?【输入】一个不大于10000的正整数S,为两个质数的和。【输出】一个整数,为两个质数的最大乘积。数据保证有解。【输入样例】50【输出样例】589代码#include <iost...原创 2020-01-02 20:32:27 · 757 阅读 · 0 评论 -
1404:我家的门牌号
1404:我家的门牌号【题目描述】我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。若其余各家的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。数据保证有唯一解。【输入】一个正整数n。n<100000。【输出】一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。【输入样例】100【输出样例】12 16代码#inc...原创 2020-01-02 20:23:25 · 1701 阅读 · 0 评论 -
1403:素数对
1403:素数对【题目描述】两个相差为2的素数称为素数对,如5和7,17和19等,本题目要求找出所有两个数均不大于n的素数对。【输入】一个正整数n(1≤n≤10000)。【输出】所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。【输入样例】100【输出样例】3 55 711 1317 1929 3141 4359 6...原创 2020-01-02 19:50:34 · 5175 阅读 · 0 评论 -
1109:开关灯
1109:开关灯【题目描述】假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相...原创 2020-01-01 21:35:02 · 1643 阅读 · 0 评论 -
1133:输出亲朋字符串
1133:输出亲朋字符串【题目描述】编写程序,求给定字符串s的亲朋字符串s1。亲朋字符串s1定义如下:给定字符串s的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符; 给定字符串s的第二个字符的ASCII值加第三个字符的ASCII值,得到第二个亲朋字符;依此类推,直到给定字符串s的倒数第二个字符。亲朋字符串的最后一个字符由给定字符串s的最后一个字符ASCII值加s的第一...原创 2020-01-01 21:23:54 · 558 阅读 · 0 评论 -
1137:加密的病历单
1137:加密的病历单【题目描述】小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)1.原文中所有的字符都在字母表中被循环左移了三个位置(de...原创 2020-01-01 21:08:55 · 1967 阅读 · 0 评论 -
1136:密码翻译
1136:密码翻译【题目描述】在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则可得到一个简单的加密字符串。【输入】输入一行,包含一个字符串,长度小于80个字...原创 2020-01-01 20:24:43 · 456 阅读 · 0 评论 -
1135:配对碱基链
1135:配对碱基链【题目描述】脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶©。我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。【输入】一个字符串,表示一条碱基链。这个字符串只含...原创 2020-01-01 20:16:36 · 1041 阅读 · 0 评论 -
1134:合法C标识符查
1134:合法C标识符查【题目描述】给定一个不包含空白符的字符串,请判断是否是C语言合法的标识符号(注:题目保证这些字符串一定不是C语言的保留字)。C语言标识符要求:1.非保留字;2.只包含字母、数字及下划线(“_”)。3.不以数字开头。【输入】一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于20。【输出】一行,如果它是C语言的合法标识符,则输出yes,否则输出n...原创 2020-01-01 20:07:14 · 342 阅读 · 1 评论 -
1144:单词翻转
1144:单词翻转【题目描述】输入一个句子(一行),将句子中的每一个单词翻转后输出。【输入】只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。【输出】翻转每一个单词后的字符串,单词之间的空格需与原文一致。【输入样例】hello world【输出样例】olleh dlrow代码#include <bits/stdc++.h>using namespa...原创 2020-01-01 19:53:27 · 814 阅读 · 0 评论 -
1149:最长单词2
1149:最长单词2【题目描述】一个以‘.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式。【输入】一个以‘.’结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式。【输出】该句子中最长的单词。如果多于一个,则输出第一个。【输入样例】I am a student of Peking University.【输出样例】Unive...原创 2020-01-01 19:00:28 · 1931 阅读 · 0 评论 -
1147:最高分数的学生姓名
1147:最高分数的学生姓名【题目描述】输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。【输入】第一行输入一个正整数N(N ≤ 100),表示学生人数。接着输入N行,每行格式如下: 分数 姓名分数是一个非负整数,且小于等于100;姓名为一个连续的字符串,中间没有空格,长度不超过20。数据保证最高分只有一位同学。【输出】获得最高分数同学的姓名。...原创 2020-01-01 17:42:37 · 701 阅读 · 0 评论 -
1146:判断字符串是否为回文
1146:判断字符串是否为回文【题目描述】输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。【输入】输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。【输出】如果字符串是回文,输出yes;否则,输出no。【输入样例】abcdedcba【输出样例】yes代码#include <bits/stdc++.h>using names...原创 2020-01-01 17:36:25 · 3391 阅读 · 1 评论 -
1141:删除单词后缀
1141:删除单词后缀【题目描述】给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作。【输入】输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。【输出】输出按照题目要求处理后的单词。【输入样例】referer【输出样例】refer代码#include <bits/stdc...原创 2019-12-31 23:16:16 · 631 阅读 · 0 评论 -
1140:验证子串
1140:验证子串【题目描述】输入两个字符串,验证其中一个串是否为另一个串的子串。【输入】输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。【输出】若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)否则,输出 No substrin...原创 2019-12-31 22:45:38 · 546 阅读 · 0 评论 -
1139:整理药名
1139:整理药名【题目描述】医生在书写药品名的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母要大写,其他字母小写。如将ASPIRIN、aspirin整理成Aspirin。【输入】第一行一个数字n,表示有n个药品名要整理,n不超过100。接下来n行,每行一个单词,长度不超过20,表示医生手书的药品名。药品名...原创 2019-12-31 21:17:41 · 980 阅读 · 0 评论 -
1138:将字符串中的小写字母转换成大写字母
1138:将字符串中的小写字母转换成大写字母【题目描述】给定一个字符串,将其中所有的小写字母转换成大写字母。【输入】输入一行,包含一个字符串(长度不超过100,可能包含空格)。【输出】输出转换后的字符串。【输入样例】helloworld123Ha【输出样例】HELLOWORLD123HA代码#include <bits/stdc++.h>using names...原创 2019-12-31 20:57:33 · 962 阅读 · 0 评论 -
1129:统计数字字符个数
1129:统计数字字符个数【题目描述】输入一行字符,统计出其中数字字符的个数。【输入】一行字符串,总长度不超过255。【输出】输出为1行,输出字符串里面数字字符的个数。【输入样例】Peking University is set up at 1898.【输出样例】4码#include <bits/stdc++.h>using namespace std;in...原创 2019-12-28 22:23:32 · 349 阅读 · 0 评论 -
1083:计算星期几
1083:计算星期几【题目描述】假设今天是星期日,那么过abab天之后是星期几?【输入】两个正整数aa,bb,中间用单个空格隔开。0<a≤100,0<b≤100000<a≤100,0<b≤10000。【输出】一个字符串,代表过abab天之后是星期几。其中,MondayMonday是星期一,TuesdayTuesday是星期二,WednesdayWednesda...原创 2019-12-28 22:12:36 · 2888 阅读 · 0 评论 -
1072:鸡尾酒疗法
1072:鸡尾酒疗法【题目描述】鸡尾酒疗法,指“高效抗逆转录病毒治疗”。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。下面给出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-...原创 2019-12-28 21:49:35 · 1776 阅读 · 0 评论 -
1075:药房管理
1075:药房管理【题目描述】随着信息技术的蓬勃发展,医疗信息化已经成为医院建设中必不可少的一部分。计算机可以很好地辅助医院管理医生信息、病人信息、药品信息等海量数据,使工作人员能够从这些机械的工作中解放出来,将更多精力投入真正的医疗过程中,从而极大地提高了医院整体的工作效率。对药品的管理是其中的一项重要内容。现在药房的管理员希望使用计算机来帮助他管理。假设对于任意一种药品,每天开始工作时的...原创 2019-12-28 21:35:53 · 1211 阅读 · 0 评论 -
1076:正常血压
1076:正常血压【题目描述】监护室每小时测量一次病人的血压,若收缩压在90-140之间并且舒张压在60-90之间(包含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最长小时数。【输入】第一行为一个正整数n(n<100),其后有n行,每行2个正整数,分别为一次测量的收缩压和舒张压。【输出】输出仅一行,血压连续正常的最长小时数。【输入样例】410...原创 2019-12-28 21:17:04 · 6866 阅读 · 1 评论 -
1081:分苹果
1081:分苹果【题目描述】把一堆苹果分给n个小朋友,要使每个人都能拿到苹果,而且每个人拿到的苹果数都不同的话,这堆苹果至少应该有多少个?【输入】一个不大于1000的正整数n,代表小朋友人数。【输出】一个整数,表示满足条件的最少苹果个数。【输入样例】8【输出样例】36### 代码#include <iostream>using namespace std;...原创 2019-12-28 20:40:59 · 2371 阅读 · 0 评论 -
1077:统计满足条件的4位数
1077:统计满足条件的4位数【题目描述】给定若干个四位数,求出其中满足以下条件的数的个数:个位数上的数字减去千位数上的数字,再减去百位数上的数字,再减去十位数上的数字的结果大于零。【输入】输入为两行,第一行为四位数的个数n,第二行为n个的四位数。(n≤100)【输出】输出为一行,包含一个整数,表示满足条件的四位数的个数。【输入样例】51234 1349 6119 2123 50...原创 2019-12-28 20:35:18 · 4958 阅读 · 0 评论 -
1078:求分数序列和
1078:求分数序列和【题目描述】有一个分数序列 q1p1,q2p2,q3p3,q4p4,q5p5,…q1p1,q2p2,q3p3,q4p4,q5p5,… ,其中qi+1=qi+piqi+1=qi+pi, pi+1=qi,p1=1,q1=2pi+1=qi,p1=1,q1=2。比如这个序列前66项分别是21,32,53,85,138,211321,32,53,85,138,2113。求这个分数序...原创 2019-12-28 20:26:55 · 1873 阅读 · 0 评论 -
1079:计算分数加减表达式的值
1079:计算分数加减表达式的值【题目描述】编写程序,输入nn的值,求11−12+13−14+15−16+17−18+…+(−1)n−1⋅1n11−12+13−14+15−16+17−18+…+(−1)n−1·1n的值。【输入】输入一个正整数nn。(1≤n≤1000)(1≤n≤1000)【输出】输出一个实数,为表达式的值,保留到小数点后四位。【输入样例】2【输出样例】0.500...原创 2019-12-28 20:12:19 · 1620 阅读 · 0 评论 -
1080:余数相同问题
1080:余数相同问题【题目描述】已知三个正整数a,b,c。现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。请问满足上述条件的x的最小值是多少?数据保证x有解。【输入】一行,三个不大于1000000的正整数a,b,c,两个整数之间用一个空格隔开。【输出】一个整数,即满足条件的x的最小值。【输入样例】300 262 205【输出样例】19代码#incl...原创 2019-12-28 20:02:38 · 844 阅读 · 0 评论