信息学奥赛一本通编程题(C/C++)
难顶啊 刷不动了啊
小渝同学
一人一晚一奇迹 尸体竟是我自己
展开
-
1355:字符串匹配问题(strs)(C C++)
【题目描述】字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如。输入: [()] 输出:YES,而输入([]),([)]都应该输出NO。【输入】第一行为一个整数n,表示以下有多少个由括好组成的字符串。接下来的n行,每行都是一个由括号组成的长度不超过255的字符串。【输出】在输出文件中有n行,每行都是YES或NO。【输入样例】5{}{}<><>()()[原创 2020-11-26 10:22:06 · 3566 阅读 · 2 评论 -
1354:括弧匹配检验(C C++)
【题目描述】假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或 ( ( ) ) )均为错误的匹配。 现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配? 输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”。输入一个字符串:[([][])],输出:OK。【输入】输入仅一行字符(字符个数小于255)。【输出】匹配就输出 “OK” ,不匹原创 2020-11-25 22:55:02 · 2920 阅读 · 1 评论 -
1353:表达式括号匹配(stack)(C C++)
【题目描述】假设一个表达式有英文字母(小写)、运算符(+,—,∗,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。【输入】一行数据,即表达式。【输出】行,即“YES” 或“NO”。【输入样例】2*(x+y)/(1-x)@【输出样例】YES【代码】提交通过 但 )(情况输出的是yes#include <iostream>#inclu原创 2020-11-19 12:47:18 · 1434 阅读 · 0 评论 -
1331:【例1-2】后缀表达式的值(C C++)
【题目描述】从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。比如,16–9*(4+3)转换成后缀表达式为:16□9□4□3□+*–,在字符数组A中的形式为:【输入】一个后缀表达式。【输出】一个后缀表达式的值。【输入样例】16 9 4 3 +*-@【输出样例】-47【代码】#include <iostream>#include原创 2020-11-18 17:43:14 · 1237 阅读 · 1 评论 -
1167:再求f(x,n)(C C++)
【题目描述】【输入】第一数是x的值,第二个数是n的值。【输出】函数值。【输入样例】1 2【输出样例】0.40【代码】原创 2020-11-10 14:40:26 · 568 阅读 · 0 评论 -
1166:求f(x,n)(C C++)
【题目描述】【输入】输入x和n。【输出】函数值,保留两位小数。【输入样例】4.2 10【输出样例】3.68【代码】原创 2020-11-10 09:44:02 · 1304 阅读 · 0 评论 -
1165:Hermite多项式(C C++)
【题目描述】【输入】给定的n和正整数x。【输出】多项式的值。【输入样例】1 2【输出样例】4.00【代码】原创 2020-11-09 20:16:41 · 2660 阅读 · 0 评论 -
1164:digit函数(C C++)
【题目描述】在程序中定义一函数digit(n,k),它能分离出整数n从右边数第k个数字。【输入】正整数n和k。【输出】一个数字。【输入样例】31859 3【输出样例】8【代码】原创 2020-11-09 20:01:19 · 4600 阅读 · 3 评论 -
1163:阿克曼(Ackmann)函数(C C++)
【题目描述】阿克曼(Ackmann)函数A(m,n)中,m,n定义域是非负整数(m≤3,n≤10),函数值定义为:【输入】输入m和n。【输出】函数值。【输入样例】2 3【输出样例】9【代码】原创 2020-11-09 19:49:21 · 1581 阅读 · 1 评论 -
1162:字符串逆序(C C++)
【题目描述】输入一串以‘!’结束的字符,按逆序输出。【输入】如题述。【输出】如题述。【输入样例】abc!【输出样例】cba【代码】原创 2020-11-07 14:34:32 · 1601 阅读 · 0 评论 -
1161:转进制(C C++)
【题目描述】用递归算法将一个十进制数X转换成任意进制数M(M≤16)。【输入】一行两个数,第一个十进制数X,第二个为进制M。【输出】输出结果。【输入样例】31 16 {将十进制31转化为十六进制数}【输出样例】1F【代码】#include <iostream>using namespace std;char a[17]="0123456789ABCDEF"; //进制转换 void f(int n,int m){ if(n/m) //当不为0时 f(n/原创 2020-10-30 14:24:23 · 906 阅读 · 0 评论 -
1160:倒序数(C C++)
【题目描述】输入一个非负整数,输出这个数的倒序数。例如输入123,输出321。【输入】输入一个非负整数(保证个位不为零)。【输出】输出倒序的数。【输入样例】123【输出样例】321【代码】#include <iostream>using namespace std;void f(int x){ cout<<x%10; //输出个位 if(x>=10) f(x/10);// 还大于10则抹去个位 在套 }int main(){ int原创 2020-10-23 13:50:18 · 1372 阅读 · 0 评论 -
1159:斐波那契数列(C C++)
【题目描述】用递归函数输出斐波那契数列第n项。0,1,1,2,3,5,8,13……【输入】一个正整数n,表示第n项。【输出】第n项是多少。【输入样例】3【输出样例】1【代码】#include <iostream>using namespace std;int f(int x){ if(x==1) return 0; else if(x==2||x==3) return 1; else return f(x-2)+f(x-1); }int main(原创 2020-10-22 16:10:38 · 1409 阅读 · 0 评论 -
1158:求1+2+3+...(C C++)
【题目描述】用递归的方法求1+2+3+……+N的值。【输入】输入N。【输出】输出和。【输入样例】5【输出样例】15【代码】#include <iostream>using namespace std;int f(int x){ if(x==0) return 0; //第0项的时候 +0 并结束 else return x+f(x-1); //当前项加上 前面项 }int main() { int x; cin>>x; cout&原创 2020-10-22 16:03:01 · 676 阅读 · 0 评论 -
1413:确定进制(C C++)
【题目描述】6×9=42对于十进制来说是错误的,但是对于13进制来说是正确的。即, 6(13)× 9(13)= 42(13), 而 42(13)=4×131+2×130=54(10)。你的任务是写一段程序,读入三个整数p、q和 r,然后确定一个进制 B(2≤B≤40) 使得 p × q = r。 如果 B 有很多选择, 输出最小的一个。例如:p=11, q=11, r=121.则有11(3)× 11(3)= 121(3)因为 11(3)= 1 × 31+ 1 × 30= 4(10)和121(3)=1×原创 2020-11-07 13:20:12 · 3590 阅读 · 0 评论 -
1412:二进制分类(C C++)
【题目描述】若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。例如:(13)10=(1101)2,其中1的个数为3,0的个数为1,则称此数为A类数;(10)10=(1010)2,其中1的个数为2,0的个数也为2,称此数为B类数;(24)10=(11000)2,其中1的个数为2,0的个数为3,则称此数为B类数;程序要求:求出1∼1000之中(包括1与1000),全部A、B两类数的个数。【输入】(无)【输出】一行,包含原创 2020-11-07 10:08:59 · 3527 阅读 · 0 评论 -
1411:区间内的真素数(C C++)
【题目描述】找出正整数M和N之间(N不小于M)的所有真素数。 真素数的定义:如果一个正整数P为素数,且其反序也为素数,那么P就为真素数。 例如,11,13均为真素数,因为11的反序还是为11,13的反序为31也为素数。【输入】输入两个数M和N,空格间隔,1≤M≤N≤100000。【输出】按从小到大输出M和N之间(包括M和N)的真素数,逗号间隔。如果之间没有真素数,则输出No。【输入样例】10 35【输出样例】11,13,17,31【代码】...原创 2020-11-06 17:38:27 · 3894 阅读 · 2 评论 -
1410:最大质因子序列(C C++)
【题目描述】任意输入两个正整数m,n(1<m<n≤5000),依次输出m到n之间每个数的最大质因子(包括m和n;如果某个数本身是质数,则输出这个数自身)。【输入】一行,包含两个正整数m和n,其间以单个空格间隔。【输出】一行,每个整数的最大质因子,以逗号间隔。【输入样例】5 10【输出样例】5,3,7,2,3,5【代码】...原创 2020-11-06 17:23:00 · 5442 阅读 · 0 评论 -
1409:判决素数个数(C C++)
【题目描述】输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。【输入】两个整数X和Y(1≤X,Y≤10^5)。【输出】输出一个整数,表示X,Y之间的素数个数(包括X和Y)。【输入样例】1 100【输出样例】25【代码】...原创 2020-11-06 16:58:08 · 2258 阅读 · 0 评论 -
1408:素数回文数的个数(C C++)
【题目描述】求11到n之间(包括n),既是素数又是回文数的整数有多少个。【输入】一个大于11小于1000的整数n。【输出】11到n之间的素数回文数个数。【输入样例】23【输出样例】1【代码】...原创 2020-11-06 16:44:15 · 2817 阅读 · 0 评论 -
1407:笨小猴(C C++)
【题目描述】笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn−minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。【输入】只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。【输出】共两行,第一行是一个字符串,假设输入的的单原创 2020-11-06 15:36:31 · 6183 阅读 · 1 评论 -
1406:单词替换 (char类型与string类型两种解法)(C C++)
【题目描述】输入一个字符串,以回车结束(字符串长度≤200)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。【输入】第1行是包含多个单词的字符串 s; 第2行是待替换的单词a(长度 ≤ 100); 第3行是a将被替换的单词b(长度 ≤ 100)。 s,a,b最前面和最后面都没有空格。【输出】输出只有 1 行,将s中所有单词a替换成b之后的字符串。【输入样例】You want someone to help原创 2020-11-06 14:06:48 · 4798 阅读 · 6 评论 -
1402:Vigenère密码(C C++)
【题目描述】6世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。【输入】第一行为一个字符串,表示密钥k,长度不超过100,其中仅包含大小写字母。 第二行为一个字符串,表示经加密后的密文,长度不超过1000,其中仅包含大小写字母。 对于100%的数据,输入的密钥的长度不超过100,输入的密文的长度不超过1000,且都仅包含英文字母。【输出】输出共1行原创 2020-10-23 09:17:44 · 1962 阅读 · 1 评论 -
1405:质数的和与积(C C++)
【题目描述】两个质数的和是S,它们的积最大是多少?【输入】一个不大于10000的正整数S,为两个质数的和。【输出】一个不大于10000的正整数S,为两个质数的和。【输入样例】50【输出样例】589【代码】...原创 2020-10-21 14:37:17 · 8293 阅读 · 2 评论 -
1404:我家的门牌号(C C++)
【题目描述】我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。 若其余各家的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。数据保证有唯一解。【输入】一个正整数n。n<100000。【输出】一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。【输入样例】100【输出样例】12 16【代码】...原创 2020-10-20 21:17:37 · 6073 阅读 · 4 评论 -
1403:素数对(C C++)
【题目描述】两个相差为2的素数称为素数对,如5和7,17和19等,本题目要求找出所有两个数均不大于n的素数对。【输入】一个正整数n(1≤n≤10000)。【输出】所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。【输入样例】100【输出样例】3 55 711 1317 1929 3141 4359 6171 73【代码】...原创 2020-10-20 20:25:10 · 3726 阅读 · 1 评论 -
1401:机器翻译(C C++)
【题目描述】小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 假设内存中有M个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过M−1,原创 2020-10-22 15:15:02 · 2638 阅读 · 0 评论 -
1400:统计单词数(C C++)
【题目描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。【输入】第 1 行为一个字符串,其中只含字母,表示给定单词; 第 2原创 2020-10-18 16:37:13 · 4041 阅读 · 3 评论 -
1399:甲流病人初筛(C C++)
【题目描述】目前正是甲流盛行时期,为了更好地进行分流治疗,医院在挂号时要求对病人的体温和咳嗽情况进行检查,对于体温超过37.5度(含等于37.5度)并且咳嗽的病人初步判定为甲流病人(初筛)。现需要统计某天前来挂号就诊的病人中有多少人被初筛为甲流病人。【输入】第一行是某天前来挂号就诊的病人数n。(n<200) 其后有n行,每行是病人的信息,包括三个信息:姓名(字符串,不含空格,最多8个字符)、体温(float)、是否咳嗽(整数,1表示咳嗽,0表示不咳嗽)。每行三个信息之间以一个空格分开。【输出】原创 2020-10-18 11:07:36 · 4019 阅读 · 0 评论 -
1398:短信计费(C C++)
【题目描述】用手机发短信,一条短信资费为0.1元,但限定一条短信的内容在70个字以内(包括70个字)。如果你一次所发送的短信超过了70个字,则会按照每70个字一条短信的限制把它分割成多条短信发送。假设已经知道你当月所发送的短信的字数,试统计一下你当月短信的总资费。【输入】第一行是整数n,表示当月发送短信的总次数,接着n行每行一个整数,表示每次短信的字数。【输出】输出一行,当月短信总资费,单位为元,精确到小数点后1位。【输入样例】10394942614414742723546原创 2020-10-18 10:26:48 · 3780 阅读 · 3 评论 -
1397:简单算术表达式求值(C C++)
【题目描述】两位正整数的简单算术运算(只考虑整数运算),算术运算为:+,加法运算;-,减法运算;*,乘法运算;/,整除运算;%,取余运算。算术表达式的格式为(运算符前后可能有空格):运算数 运算符 运算数请输出相应的结果。【输入】一行算术表达式。【输出】整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)。【输入样例】32+64【输出样例】96【代码】...原创 2020-10-18 10:18:39 · 1749 阅读 · 0 评论 -
1157:哥德巴赫猜想(C C++)
【题目描述】哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。【输入】(无)【输出】分行输出:·例如:6=3+38=3+5...(每个数只拆开一次,请保证第一个加数最小)【输入样例】(无)【输出样例】(无)【代码】...原创 2020-10-17 18:35:35 · 7419 阅读 · 2 评论 -
1156:求π的值(C C++)
【题目描述】【输入】(无)【输出】π的值。保留到小数点后10位。【输入样例】(无)【输出样例】(无)【代码】原创 2020-10-17 17:11:36 · 2068 阅读 · 0 评论 -
1155:回文三位数(C C++)
【题目描述】如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,求出所有的既是回文数又是素数的三位数。【输入】(无)【输出】所有的既是回文数又是素数的三位数。一个数一行。【输入样例】(无)【输出样例】(无)【代码】...原创 2020-10-17 16:44:32 · 2804 阅读 · 0 评论 -
1154:亲和数(C C++)
【题目描述】自然数a的因子是指能整除a的所有自然数,但不含a本身。例如12的因子为:1,2,3,4,6。若自然数a的因子之和为b,而且b的因子之和又等于a,则称a,b为一对“亲和数” 。求最小的一对亲和数(a<>b)。【输入】(无)【输出】1行,分别为a和b(a<b)。【输入样例】(无)【输出样例】(无)【代码】...原创 2020-10-17 15:25:34 · 2392 阅读 · 0 评论 -
1153:绝对素数(C C++)
【题目描述】如果一个自然数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数,例如13。试求出所有二位绝对素数。【输入】(无)【输出】所有二位绝对素数(由小到大,一个数一行)。【输入样例】(无)【输出样例】(无)【代码】...原创 2020-10-17 14:24:28 · 4357 阅读 · 2 评论 -
1152:最大数max(x,y,z)(C C++)
【题目描述】【输入】输入a,b,c。【输出】求m,保留到小数点后三位。【输入样例】1 2 3【输出样例】0.200【代码】原创 2020-10-17 13:10:28 · 1629 阅读 · 1 评论 -
1151:素数个数(C C++)
【题目描述】编程求2∼n(n为大于2的正整数)中有多少个素数。【输入】输入n(2≤n≤50000)。【输出】素数个数。【输入样例】10【输出样例】4【代码】原创 2020-10-17 11:48:27 · 5119 阅读 · 0 评论 -
1150:求正整数2和n之间的完全数(C C++)
【题目描述】求正整数2和n之间的完全数(一行一个数)。 完全数:因子之和等于它本身的自然数,如6=1+2+3【输入】输入n(n≤5000)。【输出】一行一个数,按由小到大的顺序。【输入样例】7【输出样例】6【代码】...原创 2020-10-17 11:21:28 · 2523 阅读 · 0 评论 -
1149:最长单词2(C C++)
【题目描述】一个以‘.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式。【输入】一个以‘.’结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式。【输出】该句子中最长的单词。如果多于一个,则输出第一个。【输入样例】I am a student of Peking University.【输出样例】University【代码】...原创 2020-10-16 21:04:54 · 4043 阅读 · 9 评论