输出
输出包含一行,该行有一个整数为转换后的b进制数。
输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。
样例输入
15Aab37
样例输出
210306
来源
2005~2006医学部计算概论期末考试
02:
不吉利日期
描述
在国外,每月的13号和每周的星期5都是不吉利的。
特别是当13号那天恰好是星期5时,更不吉利。
已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。
(w=1..7)
输入
输入有一行,即一月一日星期几(w)。
(1<=w<=7)
输出
输出有一到多行,每行一个月份,表示该月的13日是星期五。
样例输入
7
样例输出
1
10
提示
1、3、5、7、8、10、12月各有31天
4、6、9、11月各有30天
2月有28天
来源
计算概论化学学院期末考试
03:
大整数减法
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
求两个大的正整数相减的差。
输入
共2行,第1行是被减数a,第2行是减数b(a>b)。
每个大整数不超过200位,不会有多余的前导零。
输出
一行,即所求的差。
样例输入
9999999999999999999999999999999999999
9999999999999
样例输出
9999999999999999999999990000000000000
04:
垂直直方图
描述
输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数。
注意:
只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数。
输入
输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。
输出
输出包括若干行。
其中最后一行给出26个大写英文字母,这些字母之间用一个空格隔开。
前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。
注意:
输出的第一行不能是空行。
样例输入
THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG.
THISISANEXAMPLETOTESTFORYOUR
HISTOGRAMPROGRAM.
HELLO!
样例输出
*
*
**
****
****
******
**********
*************
******************
**************************
ABCDEFGHIJKLMNOPQRSTUVWXYZ
05:
素数回文数的个数
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
求11到n之间(包括n),既是素数又是回文数的整数有多少个。
输入
一个大于11小于1000的整数n。
输出
11到n之间的素数回文数个数。
样例输入
23
样例输出
1
提示
回文数指左右对称的数,如:
292,333。
来源
06计算概论课
06:
循环数
描述
若一个n位的数字串满足下述条件,则称其是循环数(cyclic):
将这个数字串视为整数(可能带有前导0),并用任意一个1 到n 之间(包含1和n)的整数去乘它时,会得到一个将原数字串首尾相接后,再在某处断开而得到的新数字串所对应的整数。
例如,数字142857是循环数,因为:
142857*1=142857
142857*2=285714
142857*3=428571
142857*4=571428
142857*5=714285
142857*6=857142。
请写一个程序判断给定的数是否是循环数。
注意:
在此题中,输入数字串允许带前导0,且前导0不能被忽略,例如“01”是两位数字串,而“1”是一位数字串。
但将数字串转化为整数做乘法运算或比较运算时,可以忽略前导0。
输入
一行,一个长度在2到60位之间的数字串。
输出
一个整数,若输入的数字串是循环数,输出1,否则输出0。
样例输入
142857
样例输出
1
07:
玛雅历
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
上周末,M.A.Ya教授对古老的玛雅有了一个重大发现。
从一个古老的节绳(玛雅人用于记事的工具)中,教授发现玛雅人使用了一个一年有365天的叫做Haab的历法。
这个Haab历法拥有19个月,在开始的18个月,一个月有20天,月份的名字分别是pop,no,zip,zotz,tzec,xul,yoxkin,mol,chen,yax,zac,ceh,mac,kankin,muan,pax,koyab,cumhu。
这些月份中的日期用0到19表示。
Haab历的最后一个月叫做uayet,它只有5天,用0到4表示。
玛雅人认为这个日期最少的月份是不吉利的,在这个月法庭不开庭,人们不从事交易,甚至没有人打扫屋中的地板。
因为宗教的原因,玛雅人还使用了另一个历法,在这个历法中年被称为Tzolkin(holly年),一年被分成13个不同的时期,每个时期有20天,每一天用一个数字和一个单词相组合的形式来表示。
使用的数字是1~13,使用的单词共有20个,它们分别是:
imix,ik,akbal,kan,chicchan,cimi,manik,lamat,muluk,ok,chuen,eb,ben,ix,mem,cib,caban,eznab,canac,ahau。
注意:
年中的每一天都有着明确唯一的描述,比如,在一年的开始,日期如下描述:
1imix,2ik,3akbal,4kan,5chicchan,6cimi,7manik,8lamat,9muluk,10ok,11chuen,12eb,13ben,1ix,2mem,3cib,4caban,5eznab,6canac,7ahau,,8imix,9ik,10akbal……也就是说数字和单词各自独立循环使用。
Haab历和Tzolkin历中的年都用数字0,1,……表示,数字0表示世界的开始。
所以第一天被表示成:
Haab:
0.pop0
Tzolkin:
1imix0
请帮助M.A.Ya教授写一个程序可以把Haab历转化成Tzolkin历。
输入
Haab历中的数据由如下的方式表示:
日期.月份年数
输入中的第一行表示要转化的Haab历日期的数据量。
下面的每一行表示一个日期,年数小于5000。
输出
Tzolkin历中的数据由如下的方式表示:
天数字天名称年数
第一行表示输出的日期数量。
下面的每一行表示一个输入数据中对应的Tzolkin历中的日期。
样例输入
3
10.zac0
0.pop0
10.zac1995
样例输出
3
3chuen0
1imix0
9cimi2801
08:
特殊日历计算
描述
有一种特殊的日历法,它的一天和我们现在用的日历法的一天是一样长的。
它每天有10个小时,每个小时有100分钟,每分钟有100秒。
10天算一周,10周算一个月,10个月算一年。
现在要你编写一个程序,将我们常用的日历法的日期转换成这种特殊的日历表示法。
这种日历法的时、分、秒是从0开始计数的。
日、月从1开始计数,年从0开始计数。
秒数为整数。
假设0:
0:
01.1.2000等同于特殊日历法的0:
0:
01.1.0。
输入
第一行是一个正整数N,表明下面有N组输入。
每组输入有一行,格式如下:
hour:
minute:
secondday.month.year
表示常规的日期。
日期总是合法的。
2000<=year<=50000。
输出
每组输入要求输出一行。
格式如下:
mhour:
mmin:
msecmday.mmonth.myear是输入日期的特殊日历表示方法。
样例输入
7
0:
0:
01.1.2000
10:
10:
101.3.2001
0:
12:
131.3.2400
23:
59:
5931.12.2001
0:
0:
120.7.7478
0:
20:
2021.7.7478
15:
54:
442.10.20749
样例输出
0:
0:
01.1.0
4:
23:
7226.5.0
0:
8:
4858.2.146
9:
99:
9831.8.0
0:
0:
1100.10.2000
0:
14:
121.1.2001
6:
63:
07.3.6848
来源
2210
09:
大整数乘法
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
求两个不超过200位的非负整数的积。
输入
有两行,每行是一个不超过200位的非负整数,没有多余的前导0。
输出
一行,即相乘后的结果。
结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
样例输入
12345678900
98765432100
样例输出
121932*********2690000
来源
程序设计实习2007
10:
判决素数个数
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入
两个整数X和Y(1<=X,Y<=105)。
输出
输出一个整数,表示X,Y之间的素数个数(包括X和Y)。
样例输入
1100
样例输出
25
11:
回文素数
∙查看
∙提交
∙统计
∙提问
总时间限制:
5000ms
内存限制:
65536kB
描述
一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,如121,1221,15651都是回文数。
给定位数n,找出所有既是回文数又是素数的n位十进制数。
(注:
不考虑超过整型数范围的情况)。
输入
位数n,其中1<=n<=9。
输出
第一行输出满足条件的素数个数。
第二行按照从小到大的顺序输出所有满足条件的素数,两个数之间用一个空格区分。
样例输入
1
样例输出
4
2357
12:
分数求和
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
输入n个分数并对他们求和,并用最简形式表示。
所谓最简形式是指:
分子分母的最大公约数为1;若最终结果的分母为1,则直接用整数表示。
如:
5/6、10/3均是最简形式,而3/6需要化简为1/2,3/1需要化简为3。
分子和分母均不为0,也不为负数。
输入
第一行是一个整数n,表示分数个数,1<=n<=10;
接下来n行,每行一个分数,用"p/q"的形式表示,不含空格,p,q均不超过10。
输出
输出只有一行,即最终结果的最简形式。
若为分数,用"p/q"的形式表示。
样例输入
2
1/2
1/3
样例输出
5/6
13:
人民币支付
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。
输入
一个小于1000的正整数。
输出
输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数
样例输入
735
样例输出
7
0
1
1
1
0
14:
求满足条件的3位数
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
编写程序,按从小到大的顺序寻找同时符合条件1和2的所有3位数,条件为:
1.该数为完全平方数
2.该数至少有2位数字相同
例如,100同时满足上面两个条件。
输入
输入一个数n,n的大小不超过实际满足条件的3位数的个数。
输出
输出为第n个满足条件的3位数(升序)
样例输入
1
样例输出
100
15:
求序列中的众数
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
输入一个长度为N的整数序列(不多于128个整数),每个整数的范围在[-1052,1052],计算这个序列的众数。
众数是指出现次数最多的那个数。
如果有多个数出现的次数都达到最多,则取在原序列最先出现的数为众数;如果所有的数都相等,则返回"no"。
输入
第一行为序列长度N。
然后是N个数,每一个数的范围都是在[-10^52,10^52]。
注意,这N个数之间可能有若干个空行隔开。
注意,输入数据可能有一些冗余表达信息,具体来说:
1)正数和0前面可能有前导0和'+'符号,例如
+000123=123
+0000=0
-0000=0
2)每个数字中不含有空格和其他非数字字符,例如不会出现"1000"或者"-100"。
3)每个数字前面至多有一个符号,即不会出现+(-1)、-(+4)和-(-1)等情况。
输出
输出只有1行:
该序列的众数或者”no”。
如果有多个数出现的次数都达到最多,则取最先出现的数为众数,并且输出形式应该最简形式。
例如,如果原序列众数为+000123,则输出123;如果原序列众数为+0000或者-0000或者0000,输出0。
负数正常输出,例如:
如果原序列众数为-000000001111,就输出-1111。
样例输入
6
-00001
10000
00011111111111111111111111111111111111
-01
+000000011111111111111111111111111111111111
-00000000000001
样例输出
-1
16:
最长单词2
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
一个以'.'结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式
输入
一个以'.'结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式
输出
该句子中最长的单词。
如果多于一个,则输出第一个
样例输入
IamastudentofPekingUniversity.
样例输出
University
18:
Tomorrowneverknows?
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
甲壳虫的《Adayinthelife》和《Tomorrowneverknows》脍炙人口,如果告诉你adayinthelife,真的会是tomorrowneverknows?
相信学了计概之后这个不会是难题,现在就来实现吧。
读入一个格式为yyyy-mm-dd的日期(即年-月-日),输出这个日期下一天的日期。
可以假定输入的日期不早于1600-01-01,也不晚于2999-12-30。
输入
输入仅一行,格式为yyyy-mm-dd的日期。
输出
输出也仅一行,格式为yyyy-mm-dd的日期
样例输入
2010-07-05
样例输出
2010-07-06
提示
闰年的标准:
(1)普通年能被4整除且不能被100整除的为闰年。
(如2004年就是闰年,1901年不是闰年)
地球公转示意图
(2)世纪年能被400整除的是闰年。
(如2000年是闰年,1100年不是闰年)
输入语句scanf("%d-%d-%d",&y,&m,&d)可以存储年,月,日.输出语句格式类似printf("%d-%02d-%02d\n",year,month,day).
19:
啤酒厂选址
描述
海上有一个岛,在环海边上建有一条环岛高速公路,沿着公路有n(5在岛上啤酒很受青睐。
某啤酒企业计划在岛上投资建一个啤酒厂,并根据啤酒需求每天向居住点送啤酒。
已知两个相邻的居民点的距离以及每个居住点每天的啤酒需求量(假设每个居住点每天不超过2000桶)。
假定每单位长度的路程送一桶啤酒需要的费用恒定(为单位费用)。
请问,选择哪一个居民点建啤酒厂,才能使每天送啤酒的费用最小(空车不计费用)。
输入
第一行:
为居民点数目n
后面为n行,每行为一个居民点的啤酒需求量以及按顺时针离下一个居民点的距离(均为整数,空格间隔),从编号为0的开始,按单增顺次给出。
注意:
后面第n行对应于居民点(n-1)的啤酒需求量以及到编号为0的居民点距离。
输出
啤酒厂所在的居民点编号以及每天的运输费用,其间以逗号间隔
样例输入
6
50010
30030
35025
40060
70028
20035
样例输出
0,94100
来源
20:
话题焦点人物
描述
微博提供了一种便捷的交流平台。
一条微博中,可以提及其它用户。
例如Lee发出一条微博为:
“期末考试顺利@Kim@Neo”,则Lee提及了Kim和Neo两位用户。
我们收集了N(1通过分析这些数据,我们希望发现大家的话题焦点人物,即被提及最多的人(题目保证这样的人有且只有一个),并找出那些提及它的人。
输入
输入共两部分:
第一部分是微博数量N,1第二部分是N条微博,每条微博占一行,表示为:
发送者序号a,提及人数k(0<=k<=20),然后是k个被提及者序号b1,b2...bk;
其中a和b1,b2...bk均为大于0小于100的整数。
相邻两个整数之间用单个空格分隔。
输出
输出分两行:
第一行是被提及最多的人的序号;
第二行是提及它的人的序号,从小到大输出,相邻两个数之间用单个空格分隔。
同一个序号只输出一次。
样例输入
5
1234
10
903124
4232
213
样例输出
3
124
21:
最大质因子序列
描述
任意输入两个正整数m,n(1输入
一行,包含两个正整数m和n,其间以单个空格间隔。
输出
一行,每个整数的最大质因子,以逗号间隔。
样例输入
510
样例输出
5,3,7,2,3,5
来源
元培-FromWhf
22:
因子分解
描述
输入一个数,输出其素因子分解表达式。
输入
输入一个整数n(2<=n<100)。
输出
输出该整数的因子分解表达式。
表达式中各个素数从小到大排列。
如果该整数可以分解出因子a的b次方,当b大于1时,写做a^b;当b等于1时,则直接写成a。
样例输入
60
样例输出
2^2*3*5
来源
23:
区间内的真素数
描述
找出正整数M和N之间(N不小于M)的所有真素数。
真素数的定义:
如果一个正整数P为素数,且其反序也为素数,那么P就为真素数。
例如,11,13均为真素数,因为11的反序还是为11,13的反序为31也为素数。
输入
输入两个数M和N,空格间隔,1<=M<=N<=100000。
输出
按从小到大输出M和N之间(包括M和N)的真素数,逗号间隔。
如果之间没有真素数,则输出No。
样例输入
1035
样例输出
11,13,17,31
来源
元培-FromWhf
24:
打印月历
描述
给定年月,打印当月的月历表。
输入
输入为一行两个整数,第一个整数是年份year(1900≤year≤2099),第二个整数是月份month(1≤month≤12),中间用单个空格隔开。
输出
输出为月历表。
月历表第一行为星期表头,如下所示:
SunMonTueWedThuFriSat
其余各行一次是当月各天的日期,从1日开始到31日(30日或28日)。
日期数字应于星期表头右对齐,即各位数与星期表头相应缩写的最后一个字母对齐。
日期中间用空格分隔出空白。
样例输入
20065
样例输出
SunMonTueWedThuFriSat
123456
78910111213
14151617181920
21222324252627
28293031
提示
闰年判断方法:
能被4整除但不能被100整除,或者能被400整除。
1900年1月1日是周一。
25:
计算两个日期之间的天数
描述
给定两个日期,计算相差的天数。
比如2010-1-1和2010-1-3相差2天。
输入
共两行:
第一行包含三个整数startYear,startMonth,startDay,分别是起始年、月、日。
第二行包含三个整数endYear,endMonth,endDay,分别是结束年、月、日。
相邻两个整数之间用单个空格隔开。
年份范围在1~3000。
保证日期正确且结束日期不早于起始日期。
输出
输出一个整数,即是两个日期相差的天数。
样例输入
200811
200911
样例输出
366
提示
闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。
闰年的2