2024年信息素养大赛真题

小学组:

1. 黑色星期五

【题目描述】
        西方人也有不喜欢的数字,那就是数字 13,很多西方人认为数字 13 不吉利,同
时也不太喜欢星期五。据说之所以不喜欢 13 和星期五,是因为与基督教有关系,例
如耶稣遇难日就是星期五。因此,当 13 和星期 5 遇到一起,被称为黑色星期五。请
编写一程序,输入一个年份数(0<年份数<5000),输出这个年里有黑色星期五的天
数。
例如:输入 2024,则输出 2,因为 2024 年有两个月是黑色星期五,分别是 9 月
13 日和 12 月 13 日。
【输入格式】
输入一行,只有一个正整数,表示要求解的年份,年份数小于 5000。
【输出格式】
输出一行,一个数,表示输入的年份数中有几个月有黑色星期五。
【样例输入】(测试数据不包含本样例)
2024
【样例输出】
2
【注意事项】
                请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。
本程序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函
数需要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或
操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include
<xxx>, 不能通过工程设置而省略常用头文件。

2. 求解连续 3 相加之和

【题目描述】
        输入一个整数 n,表示有 n 个由 3 组成的不同的数字,分别是 3、33、333、…、
n 个 3,编写程序,求这 n 个数字的相加之和是多少?n 是一个不大于 10000 的正整
数。
例如:输入 n=2,则相当于 3+33=36,则输出 36;当输入 n=4 时,相当于 3+33+333
+3333=3702,则输出 3702。
【输入格式】
输入共 1 行,输入正整数,就是表示最多有 n 个 3 组成的最大数。
【输出格式】
输出共 1 行,一个整数,表示从 1 个 3、2 个 3、3 个 3,一直到 n 个 3 组成的数
字相加之和。
【样例输入】(测试数据不包含本样例)
4
【样例输出】
3702
【注意事项】
        请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。
本程序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函
数需要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或
操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include
<xxx>, 不能通过工程设置而省略常用头文件。

3. 翻转数相乘

【题目描述】
        假设一个 n 位数,如 a1 a 2 a 3 …a n ,其中 a i 是这个数的第 i 位上的数字,且这个 n
位数不是每个位都相等的数字,例如不是 2222 或类似。如果有一个整数 x,并且
1<x<10,使得 a 1 a 2 a 3 …a n *x=a n a n-1 a n-2 …a 1 ,求 x,其中 a 1 和 a n 不能为 0,如果 x 无解,
则输出 0,如果有多个 x,则从小到大输出所有 x 的解,中间用空格隔开。例如:一
个 5 位数,ABCDE * ? = EDCBA,其中 A、B、C、D、E 是个位整数,ABCDE 和 EDCBA
是一个万位数,求符合这个等式的乘数。
【输入格式】
输入 1 个数,表示要求解的 n 位数。
【输出格式】
输出表示所有可能的乘数,并按照从小到大排列,用回车隔开。
【样例输入】(测试数据不包含本样例)
6
【样例输出】
4
9
【注意事项】
        请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。
本程序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函
数需要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或
操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include
<xxx>, 不能通过工程设置而省略常用头文件。

4. 求圆周率Π

【题目描述】
        我们知道圆周率派Π,是一个无线不循环小数,请编写一个程序,求解圆周率
Π,对于给定的输入 n,求Π的小数点后第 n 位的数字。圆周率Π=3.1415926…,例
如,输入:4,输出:5,表示小数点后的第 4 位是 5;输入:5,输出:9.
【输入格式】
输入一行一个数,一个小于 300 的正整数,表示圆周率后小数点后的第几位 n。
【输出格式】
输出一行,一个正整数,表示圆周率派Π的小数点后第 n 位对应的数字。
【样例输入】(测试数据不包含本样例)
4
【样例输出】
5
【注意事项】
        本题目考核不是简单的格式化输出小数问题,大家要思考如何输出多位的小数。
请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。本程
序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函数需
要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作
系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>,
不能通过工程设置而省略常用头文件。

初中组:

1. 吉利号码

【题目描述】
        中国人喜欢图吉利,包括吉利数字,例如数字 8 或者数字 6,尤其是连着的数字
更加喜欢,比如手机号码,汽车车牌,房间号码等等。有需求就会有市场,吉利数
字的号码,往往意味着更贵的价格。请你根据以下规则,编写一个程序,根据规则
给一个号码设置相应的价格。
具体规则如下:
1. 正常号码是 100 元。
2. 含有:6,8 任何一个数字,每出现一次加分。50 元,例如 4326,6875,9918
都符合加分标准。其中,6875 被加 2 个 50 元,就相当于加 100 元;9918 被
加 50 元。
3. 如果出现升序或者降序的情况,不管升序还是降序,号码涨价 3 倍。例如:
5678,4321 都要贵 3 倍。注意:例如 5567,4331 等有相同元素的号码不算降
序、升序。
4. 如果出现三个相同数字情况,都涨 6 倍。例如:4888,6665,7777 都满足加分
的标准。注意:7777 因为满足这条标准两次,所以这条规则给它涨两个 6
倍,也就是 12 倍。
5. 如果符合 AABB 或者 ABAB 模式的,价格涨一倍。例如:2255,3939,7777 都符
合这个模式,所以都会涨价。注意:7777 因为满足这条标准两次,所以这条
标准给它涨 2 倍,同时 7777 也是连号,也会在之前连号的基础上继续涨价。
请编写程序按照所有规则,求一个号码的最终价格!要求程序从标准输入接收数
据,在标准输出上输出结果。
【输入格式】
输入共 1 行,输入一个四位正整数,就是待计算的号码。
【输出格式】
输出共 1 行,一个整数,表示这个号码对应的销售价格。
【样例输入】(测试数据不包含本样例)
6543
【样例输出】
450
【注意事项】
        请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。
本程序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函
数需要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或
操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include
<xxx>, 不能通过工程设置而省略常用头文件。

2. 将整数换成分数

【题目描述】
        一个小于 100 万的正整数 n,尝试把 n 变成带分数形式,也就是 n=a+b/c,其中
a,b,c 是三个正整数,并且数字 1~9(不含 0)在 a、b、c 中,必须出现,且只能
出现一次。例如:100=3 + 69258/714,其中 1 到 9 这 9 个数字全都出现了,并且只
出现一次。当然,100 还等于 82 + 3546/197,也就是说将 100 变成带分数形式,会
有两种组合方式。事实上 100,可以写成 11 种 1 到 9 组成整数加上分数的形式。
请编写一个程序,根据一个输入 N,程序输出该数字用数码 1~9 不重复不遗漏地
组成带分数表示的全部可能性。不要求输出每个表示,只输出有多少种表示法!
【输入格式】
输入一行,表示要分解的正整数。
【输出格式】
输出一行,表示有多少分法。
【样例输入】(测试数据不包含本样例)
100
【样例输出】
11
【注意事项】
        请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。
本程序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函
数需要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或
操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include
<xxx>, 不能通过工程设置而省略常用头文件。

3. 裂变的威力

【题目描述】
        我们的世界是由原子组成的,每个原子又由更小的质子和中子,以及电子组成,
质子数+中子数=电子数。一个大原子如果分裂为更小的原子则会释放特别大的能量,
有个科学家提出一个原子裂变的猜想,那就是根据原子中电子的数量,将原子核的
质子中子电子进行重新分配,变成几个更小的原子,也就是说质子、中子和电子的
数目没有减少,但是能量却可能放大每个新的原子的电子数目的连乘那么多倍。为
了使获得最多的能量,需要考虑如何重新分配原子,让释放的能量最大。例如,原
子的电子数 n=13,裂变后的能量等于新的小原子电子数目的乘积,可以证明当 n 表
示为 4+3+3+3(或 2+2+3+3+3)时,乘积=108 为最大,而 13=5+5+3,这种分配方式
的乘积是 75 。请编写一个程序,输入一个正整数 n(10≤n≤30000)。要求将 n 写
成若干个正整数之和,并且使这些正整数的乘积最大。
【输入格式】
输入共 1 行,输入一个正整数:n (10≤n≤30000)。
【输出格式】
输出共 2 行,第 1 行输出一个整数,为最大乘积的位数。 第 2 行输出最大乘积
的前 100 位,如果不足 100 位,则按实际位数输出最大乘积。
【样例输入】(测试数据不包含本样例)
13
【样例输出】
3
108
【注意事项】
        请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。
本程序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函
数需要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或
操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include
<xxx>, 不能通过工程设置而省略常用头文件。

4. 求解连续 3 相加之和

【题目描述】
        输入一个整数 n,表示有 n 个由 3 组成的不同的数字,分别是 3、33、333、…、
n 个 3,编写程序,求这 n 个数字的相加之和是多少?n 是一个不大于 10000 的正整
数。
例如:输入 n=2,则相当于 3+33=36,则输出 36;当输入 n=4 时,相当于 3+33+333
+3333=3702,则输出 3702。
【输入格式】
输入共 1 行,输入正整数,就是表示最多有 n 个 3 组成的最大数。
【输出格式】
输出共 1 行,一个整数,表示从 1 个 3、2 个 3、3 个 3,一直到 n 个 3 组成的数
字相加之和。
【样例输入】(测试数据不包含本样例)
4
【样例输出】
3702
【注意事项】
        请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。
本程序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函
数需要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或
操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include
<xxx>, 不能通过工程设置而省略常用头文件。

高中组:

1. 裂变的威力

【题目描述】
        我们的世界是由原子组成的,每个原子又由更小的质子和中子,以及电子组成,
质子数+中子数=电子数。一个大原子如果分裂为更小的原子则会释放特别大的能量,
有个科学家提出一个原子裂变的猜想,那就是根据原子中电子的数量,将原子核的
质子中子电子进行重新分配,变成几个更小的原子,也就是说质子、中子和电子的
数目没有减少,但是能量却可能放大每个新的原子的电子数目的连乘那么多倍。为
了使获得最多的能量,需要考虑如何重新分配原子,让释放的能量最大。例如,原
子的电子数 n=13,裂变后的能量等于新的小原子电子数目的乘积,可以证明当 n 表
示为 4+3+3+3(或 2+2+3+3+3)时,乘积=108 为最大,而 13=5+5+3,这种分配方式
的乘积是 75 。请编写一个程序,输入一个正整数 n(10≤n≤30000)。要求将 n 写
成若干个正整数之和,并且使这些正整数的乘积最大。
【输入格式】
输入共 1 行,输入一个正整数:n (10≤n≤30000)。
【输出格式】
输出共 2 行,第 1 行输出一个整数,为最大乘积的位数。 第 2 行输出最大乘积
的前 100 位,如果不足 100 位,则按实际位数输出最大乘积。
【样例输入】(测试数据不包含本样例)
13
【样例输出】
3
108
【注意事项】
        请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。
本程序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函
数需要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或
操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include
<xxx>, 不能通过工程设置而省略常用头文件。

2. 求解连续 3 相加之和

【题目描述】
        输入一个整数 n,表示有 n 个由 3 组成的不同的数字,分别是 3、33、333、…、
n 个 3,编写程序,求这 n 个数字的相加之和是多少?n 是一个不大于 10000 的正整
数。
例如:输入 n=2,则相当于 3+33=36,则输出 36;当输入 n=4 时,相当于 3+33+333
+3333=3702,则输出 3702。
【输入格式】
输入共 1 行,输入正整数,就是表示最多有 n 个 3 组成的最大数。
【输出格式】
输出共 1 行,一个整数,表示从 1 个 3、2 个 3、3 个 3,一直到 n 个 3 组成的数
字相加之和。
【样例输入】(测试数据不包含本样例)
4
【样例输出】
3702
【注意事项】
        请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。
本程序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函
数需要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或
操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include
<xxx>, 不能通过工程设置而省略常用头文件。

3. 翻转数相乘

【题目描述】
        假设一个 n 位数,如 a1 a 2 a 3 …a n ,其中 a i 是这个数的第 i 位上的数字,且这个 n
位数不是每个位都相等的数字,例如不是 2222 或类似。如果有一个整数 x,并且
1<x<10,使得 a 1 a 2 a 3 …a n *x=a n a n-1 a n-2 …a 1 ,求 x,其中 a 1 和 a n 不能为 0,如果 x 无解,
则输出 0,如果有多个 x,则从小到大输出所有 x 的解,中间用空格隔开。例如:一
个 5 位数,ABCDE * ? = EDCBA,其中 A、B、C、D、E 是个位整数,ABCDE 和 EDCBA
是一个万位数,求符合这个等式的乘数。
【输入格式】
输入 1 个数,表示要求解的 n 位数。
【输出格式】
输出表示所有可能的乘数,并按照从小到大排列,用回车隔开。
【样例输入】(测试数据不包含本样例)
6
【样例输出】
4
9
【注意事项】
        请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。
本程序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函
数需要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或
操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include
<xxx>, 不能通过工程设置而省略常用头文件。

4. 求圆周率Π

【题目描述】
        我们知道圆周率派Π,是一个无线不循环小数,请编写一个程序,求解圆周率
Π,对于给定的输入 n,求Π的小数点后第 n 位的数字。圆周率Π=3.1415926…,例
如,输入:4,输出:5,表示小数点后的第 4 位是 5;输入:5,输出:9.
【输入格式】
输入一行一个数,一个小于 300 的正整数,表示圆周率后小数点后的第几位 n。
【输出格式】
输出一行,一个正整数,表示圆周率派Π的小数点后第 n 位对应的数字。
【样例输入】(测试数据不包含本样例)
4
【样例输出】
5
【注意事项】
        本题目考核不是简单的格式化输出小数问题,大家要思考如何输出多位的小数。
请严格按要求输出,不要多余的打印语句,例如:“输入 x=...” 等多余内容。本程
序的代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main 函数需
要返回 0。注意: 只使用 ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作
系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>,
不能通过工程设置而省略常用头文件。
信息素养大赛官网:我是网址
  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值