全国中小学信息技术创新与实践大赛NOC之Python编程题解一

30 篇文章 7 订阅
13 篇文章 4 订阅

一份问卷调查,期待听到您的声音


 

全国中小学信息技术创新与实践大赛(简称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」更多精彩

喜欢就请「分享「点赞「在看」吧!

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值