最好用电脑,谷歌浏览器做题; 页面打开不要超过1天,不然就失效了。

2018-2022CSP-J第一题


1.编程题

1.凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字符数时,空格和换行符不计算在内。





2.小 K 同学向小 P 同学发送了一个长度为8 的 01 字符串来玩数字游戏,小 P 同学想要知道字符串中究竟有多少个1。
注意:01 字符串为每一个字符是0 或者1 的字符串,如“101”(不含双引号)为一个长度为3 的 01 字符串。





3.一般来说,一个正整数可以拆分成若干个正整数的和。
例如,1=1,10=1+2+3+4 等。对于正整数n 的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下,n 被分解为了若干个不同的2 的正整数次幂。注意,一个数x 能被表示成2 的正整数次幂,当且仅当x 能通过正整数个2 相乘在一起得到。
例如,10=8+2=23+21是一个优秀的拆分。但是,7=4+2+1=22+21+20就不是一个优秀的拆分,因为1 不是2 的正整数次幂。
现在,给定正整数n,你需要判断这个数的所有拆分中,是否存在优秀的拆分。若存在,请你给出具体的拆分方案。





4. 
红太阳幼儿园有n 个小朋友,你是其中之一。保证n≥2。
有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿园的小朋友们。
由于你只是个平平无奇的幼儿园小朋友,所以你的体力有限,至多只能拿R 块糖回去。
但是拿的太少不够分的,所以你至少要拿L 块糖回去。保证n≤L≤R。
也就是说,如果你拿了k 块糖,那么你需要保证L≤k≤R。
如果你拿了k 块糖,你将把这k 块糖放到篮子里,并要求大家按照如下方案分糖果:只要篮子里有不少于n 块糖果,幼儿园的所有n 个小朋友(包括你自己)都从篮子中拿走恰好一块糖,直到篮子里的糖数量少于n 块。此时篮子里剩余的糖果均归你所有——这些糖果是作为你搬糖果的奖励。
作为幼儿园高质量小朋友,你希望让作为你搬糖果的奖励的糖果数量(而不是你最后获得的总糖果数量!)尽可能多;因此你需要写一个程序,依次输入n,L,R,并输出你最多能获得多少作为你搬糖果的奖励的糖果数量。
 





5.小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数a 和b,求ab的值是多少。 ab即b 个a 相乘的值,例如23即为3 个2 相乘,结果为2×2×2=8。
“简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。 小文很快意识到,她的程序里的变量都是 int 类型的。在大多数机器上,int 类型能表示的最大数为231−1,因此只要计算结果超过这个数,她的程序就会出现错误。
由于小文刚刚学会编程,她担心使用 int 计算会出现问题。因此她希望你在ab的值超过109时,输出一个 -1 进行警示,否则就输出正确的ab的值。 然而小文还是不知道怎么实现这份程序,因此她想请你帮忙。







`

1.编程题
1 2 3 4 5