当前位置:   article > 正文

创意编程py模拟题_常州市创意编程与智能设计大赛python赛项模拟题

常州市创意编程与智能设计大赛python赛项模拟题

前言:好久没写博客了,来好好写一篇
注:本篇文章为py,不是c++

1、敲七 版本1

题目:

题目描述

输出7和7的倍数,还有包含7的数字例如(17,27,37…70,71,72,73…)。当然,这些数是无限的,所以我们加上一个上限N。即输出不大于N的敲七数。

输入格式

第1行:1个整数N。(N不大于30000)

输出格式

若干行,每行一个敲七数。按从小到大的顺序排列。

样例

样例输入
20
  • 1
样例输出
7
14
17
  • 1
  • 2
  • 3

分析

一个数一个数的排查

AC代码

n=int(input())
for i in range(7,n+1):
    if i % 7 == 0 :
        print(i)
    else:
        j = i
        while j <= n:
            if j % 10 == 7:
                print(i)
                break
            j = j // 10;
            if j == 0:
                break
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2、韩信点兵

题目

题目描述

相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三个人一排,五人一排,七人一排地变换队形,而他每次只掠一眼队伍的队尾就知道总人数了。输入3个非负整数a,b,c,表示每种队尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。

//请有基础的同学写中国剩余定理

输入格式

2 1 6
  • 1

输出格式

41
  • 1

样例

样例输入
2 1 3
  • 1
样例输出
no answer
  • 1

分析

因为人数再100以内,所以工程量很小,从1枚举到100便可

a,b,c=map(int,input().split())
for i in range(1,101):
    if(i%3==a and i%5==b and i%7==c):
        print(i)
        sys.exit()
print("no answer")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3、完全数

题目

题目描述

若某个自然数的所有小于自身的因数之和恰好等于其自身,则该自然数称为一个完全数。试编程找出m~n间的完全数。

输入格式

二个整数m、n。(1≤m,n≤20000)

输出格式

每行一个完全数,最后一个数为完全数的个数

样例

样例输入
1 10
  • 1

样例输出

6
1
  • 1
  • 2

分析

这道题要注意一点,因为工程量很大,所以暴力有可能超时,所以要找到完全数末尾为6/8的特点(性质)

AC代码

n,m=map(int,input().split())
w=0
for i in range(n,m+1):
    s=0
    for j in range(1,i//2+1):
        #print(j)
        if i%10==8 or i%10==6 :#判断末尾为6/8
            if i%j==0 :
                s+=j
            if s>i:
                break
    if s==i:
        print(i)
        w+=1
print(w)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

4、鸡兔问题

题目

题目描述

鸡兔关在同一笼中,读入总脚数及头数,编程输出鸡兔各有多少只。

输入格式

共一行,二个数N和M,分别表示脚数及头数

输出格式

共一行,两个整数,鸡兔各多少只,两数之间用一空格分开

样例

样例输入
40 16
  • 1
样例输出
12 4
  • 1

AC代码

b, a = map(int, input().split(' '))
for i in range(1, a):
    x = i
    y = a - x
    if 2 * x + 4 * y == b:
        print("{} {}".format(x, y))
        break

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

闽ICP备14008679号