一份问卷调查,期待听到您的声音
全国中小学信息技术创新与实践大赛(简称NOC),由城乡统筹发展研究中心和中国人工智能学会共同主办,是教育部公布的全国中小学竞赛白名单赛事之一,权威、有含金量。
该比赛正在报名哦!比赛全程无需支付任何费用。
报名网址:http://s.noc.net.cn/MatchContent/MatchContent。
报名日期:5月6日-5月22日。
NOC比赛中的软件创意编程赛项,面向小学低年级为图形化编程,小学高年级为Python编程。
这里我们着重挑选Python编程题进行题解,让大家也可以对比赛有一定了解。
1. 奇偶分拆排序(难度:简单)
输入一个整数序列,对其进行排序,使得奇数在前,偶数在后,奇数从大到小排列,偶数从小到大排序。
输入示例:
1 2 3 4 5 6
输出示例:
5 3 1 2 4 6
参考解法
本题考察列表数据项的奇偶判断和列表排序。
奇偶判断只需要使用求余运算即可,列表排序使用sort()。
lst = list(map(int, input().split()))odd, even = [], []for i in lst: if i%2==1: odd.append(i) else: even.append(i)odd.sort(reverse=True)even.sort()print(odd+even)
2. 美妙的数(难度:困难)
如果一个正整数,各位数字之和加上各位数字之积,恰好等于这个数本身,就把它叫做“美妙的数”。请找出从A到B之间的正整数,有多少个是美妙的数。
输入示例:
10 60
输出示例:
5
参考解法
本题重点考察数字位数的提取。
位数提取时也使用求余运算,得到个位后,再去除个位。
a, b = map(int, input().split())def ok(n): number = n digits = [] while True: if number >= 10: tmp = number % 10 digits.append(tmp) number = int((number - tmp)/10) else: digits.append(number) break add, product = 0,1 for i in digits: add = add + i product = product * i return add + product == n count = 0for i in range(a,b+1): if ok(i): count += 1print(count)
— OVER —
与非学堂
专注青少年信息技术教育,探讨少儿编程的教与学,交流技巧、分享资源
与非学堂小程序
蓝桥杯STEMA科技素养测试、Bebras测试、文化测试
一份自家广告,长期有效|咨询&合作
公众号对话框回复「HELP」更多精彩
喜欢就请「分享」「点赞」「在看」吧!