PTA团体程序设计天梯赛-练习集41-45题

张开发
2026/4/14 12:43:07 15 分钟阅读

分享文章

PTA团体程序设计天梯赛-练习集41-45题
L1-041 寻找250对方不想和你说话并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。输入格式输入在一行中给出不知道多少个绝对值不超过1000的整数其中保证至少存在一个“250”。输出格式在一行中输出第一次出现的“250”是对方扔过来的第几个数字计数从1开始。题目保证输出的数字在整型范围内。输入样例888 666 123 -233 250 13 250 -222输出样例5#includeiostream #includealgorithm #includecstring #includestring using namespace std; int main(){ int x; cinx; for(int i1;;i){ if(x250) { couti; break; } cinx; } return 0; }L1-042 日期格式化世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”而中国人习惯写成“年-月-日”。下面请你写个程序自动把读入的美国格式的日期改写成中国习惯的日期。输入格式输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。输出格式在一行中按照“yyyy-mm-dd”的格式给出年、月、日。输入样例03-15-2017输出样例2017-03-15#includeiostream #includealgorithm #includecstring #includestring using namespace std; int main(){ int year1,month1,day1; scanf(%d-%d-%d,month1,day1,year1); printf(%04d-%02d-%02d,year1,month1,day1); return 0; }L1-043 阅览室天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时管理员输入书号并按下S键程序开始计时当读者还书时管理员输入书号并按下E键程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时表示一天工作结束你的程序应输出当天的读者借书次数和平均阅读时间。注意由于线路偶尔会有故障可能出现不完整的纪录即只有S没有E或者只有E没有S的纪录系统应能自动忽略这种无效纪录。另外题目保证书号是书的唯一标识同一本书在任何时间区间内只可能被一位读者借阅。输入格式输入在第一行给出一个正整数N≤10随后给出N天的纪录。每天的纪录由若干次借阅操作组成每次操作占一行格式为书号[1, 1000]内的整数键值S或E发生时间hh:mm其中hh是[0,23]内的整数mm是[0, 59]内整数每一天的纪录保证按时间递增的顺序给出。输出格式对每天的纪录在一行中输出当天的读者借书次数和平均阅读时间以分钟为单位的精确到个位的整数时间。输入样例3 1 S 08:10 2 S 08:35 1 E 10:00 2 E 13:16 0 S 17:00 0 S 17:00 3 E 08:10 1 S 08:20 2 S 09:00 1 E 09:20 0 E 17:00输出样例2 196 0 0 1 60#include stdio.h #include string.h int main() { int n,num; //n表示天数num表示书号 int cnt;//一天内借书次数 int hh,mm;//借书时间 int book[1001] {0}; int time[1001] {0}; char key; //按键 int sumtime 0; scanf(%d,n); while(n 0) { //开始新的一天清零 memset(book,0,sizeof(book)); memset(time,0,sizeof(time)); while(1) { scanf(%d %c %d:%d,num,key,hh,mm); if(num 0) break;//一天结束 book[num] ; if(key S) { time[num] hh*60mm; } if(key E book[num] % 2 0) { //还书且有借书记录的记录下借书次数阅读时间 cnt ; time[num] hh*60mm-time[num]; sumtime time[num]; time[num] 0; } } if(cnt 0) printf(0 0\n); else printf(%d %d\n,cnt,(int)(sumtime*1.0/cnt 0.5));//注意四舍五入 //开始新的一天cnt,sumtime清零 cnt 0; sumtime 0; n --; } return 0; }L1-044 稳赢现要求你编写一个稳赢不输的程序根据对方的出招给出对应的赢招。但是为了不让对方输得太惨你需要每隔K次就让一个平局。输入格式输入首先在第一行给出正整数K≤10即平局间隔的次数。随后每行给出对方的一次出招ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束这一行不要作为出招处理。输出格式对每一个输入的出招按要求输出稳赢或平局的招式。每招占一行。输入样例2 ChuiZi JianDao Bu JianDao Bu ChuiZi ChuiZi End输出样例Bu ChuiZi Bu ChuiZi JianDao ChuiZi Bu#include iostream using namespace std; int main() { int k;//平局间隔次数 cink; int n0;//计数器 while(1) { string s; cins; if(sEnd)//End结束游戏 break; if(n!k)//没有到达间隔次数 { n; if(sBu) coutJianDaoendl; else if(sChuiZi) coutBuendl; else if(sJianDao) coutChuiZiendl; } else//到达间隔次数 { n0; coutsendl; } } return 0; }L1-045 宇宙无敌大招呼据说所有程序员学习的第一个程序都是在屏幕上输出一句“Hello World”跟这个世界打个招呼。作为天梯赛中的程序员你写的程序得高级一点要能跟任意指定的星球打招呼。输入格式输入在第一行给出一个星球的名字S是一个由不超过7个英文字母组成的单词以回车结束。输出格式在一行中输出Hello S跟输入的S星球打个招呼。输入样例Mars输出样例Hello Mars#includeiostream #includealgorithm #includecstring #includestring using namespace std; int main(){ string s; cins; coutHello s; return 0; }

更多文章