文库 真题 NOC真题

NOC编程马拉松小学高年级组Python复赛真题附答案

NOC题库 编程马拉松真题 PDF   6页   下载1   2024-05-17   浏览132   收藏0   点赞0   评分-   免费文档
温馨提示:当前文档最多只能预览 2 页,若文档总页数超出了 2 页,请下载原文档以浏览全部内容。
NOC编程马拉松小学高年级组Python复赛真题附答案 第1页
NOC编程马拉松小学高年级组Python复赛真题附答案 第2页
剩余4页未读, 下载浏览全部
NOC2023 复赛 小高 组 1. 第⼆个字符 题⽬描述 给定⼀个字符串 ,请输出这个字符串中的第⼆个字符。 输⼊描述 共⼀⾏ ⼀个字符串 ,⾄少有 2个字符 输出描述 共⼀⾏ 这个字符串的第⼆个字符 样例输⼊ 编程真有趣! 样例输出 程 解题思路: 1. 使⽤ input() 命令输⼊⼀个字符串 2. 通过索引访问第⼆个字符 ,注意字符串索引从 0开始 1 s = input () # 输⼊ 2 print (s[ 1]) # 第⼆个字符索引 是 1 2. 时间换算 题⽬描述 玥玥每天⽤在学习上的总时间为 n秒 ,请将它转换成以⼩时、分 钟和秒组成的时间格式 ,中间以冒号分 隔。 ⽐如 , n=3600 ,那么会输出 1:0:0 ,因为 3600 秒刚好为⼀⼩时。 再⽐如 , n=100 ,那么会输出 0:1:40 ,因为 100 秒不到 1⼩时 ,为 1分钟 40 秒。 输⼊描述 共⼀⾏ ⼀个正整数 n 输出描述 共⼀⾏ 表⽰时间 样例输⼊ 1 3600 样例输出 1 1:0:0 样例输⼊ 2 100 样例输出 2 0:1:40 解题思路: 3600 秒 =1⼩时 ,所以⼩时数等 于总秒数整除以 3600 60 秒 =1分钟 ,所以分钟数等于总秒数减去⼩时部分 ,再整除以 60 不够 1分钟的部分作为秒位上的数字 ,即总秒数对 60 取余 最后 ,将计算结果⽤ :拼接输出 1 n = int (input ()) # 输⼊ 2 h = n // 3600 # 计算⼩时位数字 3 m = (n - h * 3600 ) // 60 # 计算分钟位数字 4 s = n % 60 # 计算秒位数字 5 print (str (h) + ':' + str (m) + ':' + str (s)) # 输出 3. 摘苹果 题⽬描述 三个同学⼀起去果园摘苹果。⼩亮摘的苹果个数为 a,⼩佳摘的苹果个数为 b,⼩美 摘的苹果个数为 c。 王⽼师准备帮助他们补摘⼀些苹果 ,使得三⼈摘的苹果个数相同。请问王⽼师最少应该摘 多少个苹 果? 输⼊描述 共⼀⾏ 三个整数 ,分别为 a、 b、 c,两数之间⽤逗号隔开 输出描述 共⼀⾏ ⼀个整数 ,表⽰最少要摘苹果数 样例输⼊ 2,6,3 样例输出 7 解题思路: 想要使三⼈摘的苹果数相同 ,并且⽼师摘的苹果最少 ,策略是:找到拥有最多苹果的⼈ ,然后将 其他⼈的苹果 数量增加到与其相同。 1 li = [int (i) for i in input ().split( ',' )] # 推导式将输⼊转 为整数列表 2 m = max (li) # max() 命令求最多的苹果数 3 num = m * 3 - sum (li) # 补⻬ 4 print (num) # 输出结果 4. 空⼼数字矩形 题⽬描述 给定⼀个正整数 n(2 < n< 10) ,打印由数字 n和空格组成的空⼼矩形。 输⼊描述 共⼀⾏ ⼀个正整数 n(2 < n<10) 输出描述 共 n⾏ ⼀个由数字 n和空格组成的空⼼矩形 ,要求⾏和列都是 n个数字 样例输⼊ 3 样例输出 333 3 3 333 解题思路: 分⾏讨论: 先打印第⼀⾏ ,以⼀个数字⼀个空格为⼀组 ,共重复 n次 接下来打印第 2到 n-1⾏ ,所以重复执⾏ n-2次 ,每⼀⾏包含:⼀个数字 ,( 2*n-3)个空格 ,⼀个数字 最后⼀⾏和第⼀⾏⼀样 ,以⼀个数字⼀个空 格为⼀组 ,共重复 n次 1 n = int (input ()) # 输⼊ n 2 # 打印第⼀⾏ 3 print (( str (n) + ' ') * n) 4 # 打印中间 n - 2 ⾏ 5 for i in range (n - 2): 6 print (str (n) + ' ' * (2 * n - 3) + str (n)) 7 # 打印最后⼀⾏ 8 print (( str (n) + ' ') * n) 5. 猫咪⽯碑 题⽬描述 考古专家在埃及发现⼀块神秘的⽯碑 ,碑⽂上刻着⼀些语⾔符号 ,可看作⼀个只包含 C、 A、 T 这三种 字符的字符串 ,为了破译碑⽂的含义 ,请你统计单词 CAT 在⽂本中出现了多少次。 CAT 中可以穿插字⺟ ,也就是说 ,只要三个字⺟按正确顺序出现即可 ,不同的 CAT 也可以共享字⺟。 例如 , CAT 在 CTAT 中出现 1次 ,在 CCAT 中出现 2次 ,在 CCAATT 中出现 8次。 输⼊描述 共⼀⾏ ⼀个字符串 ,只包含 C、 A、 T三种字符 输出描述 共⼀⾏ ⼀个数字 ,表⽰ CAT 出现的次数 样例输⼊ CAATTT 样例输出 6 解题思路: 这道题思路很巧妙 ,我们可以先来考虑两个字符的情况:统计字符串中能组成多少个 CA 在共享字⺟的前提下 ,对于某个 A来说 , 'CA' 中 CA 出现了 1次 , ‘ 'CCA' 中 CA 出现了 2次 , 'AC' 中 CA 出现了 0次 ,我们可以发现 , A之后的 C是⽆效的 , A之前有⼏个 C, CA 就出现了⼏次; 所以 ,我们可以遍历字符串 ,每出现⼀个 C 就累计 C出现的次数 ,每出现⼀个 A就累计 CA 出现的次数(即累 加此时 C 已经出现的次数) 同理 ,想要统计 CAT 出现的次数也是⼀样的 ,下⾯ 来看代码 1 s = input () # 输⼊字符串 2 c = ca = cat = 0 # c 统计 C 出现的次数, a 统计 CA 出现的次数, cat 统计 CAT 出现的次数 3 for i in s: 4 if i == 'C' : # 出现 C 5 c += 1 # 累加 1 6 elif i == 'A' : # 出现 A 7 ca += c # 累加 A 之前 C 出现的次数 8 else : # 出现 T 9 cat += a # 累加 T 之前 CA 出现的次数 10 print (cat) # 输出结果 6. 三阶幻⽅ 题⽬描述 三阶幻⽅是最简单的幻⽅ ,⼜叫九宫格 ,是由九个数字组成的⼀个三⾏三列的矩阵 ,其对角线、横 向、纵向的和都⼀样。现在有 9个连续的⾃然数 ,
NOC2023小高组Python复赛真题-含答案,NOC编程马拉松小学高年级组Python复赛真题附答案
下载提示

下载及版权说明:6547网文库内容来自网络及各平台公开内容(属于用户上传,不保证正确性,只做参考),旨在帮助同学们学习少儿编程相关知识及内容,仅限内部学习及使用,以分享为主,下载本文档之后请合法使用相关、真题、素材、课件、教程等内容,若内容存在侵权,请进行 举报 及查看 免责声明