当前位置:   article > 正文

全国中小学信息技术创新与实践大赛NOC之Python编程题解一_如果一个正整数,各位数字之和加上各位数字之积,恰好等于这个数本身,就把它叫做“

如果一个正整数,各位数字之和加上各位数字之积,恰好等于这个数本身,就把它叫做“

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


 

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/219134
推荐阅读
相关标签
  

闽ICP备14008679号