创意编程py模拟题

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

1、敲七 版本1

题目:

题目描述

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

输入格式

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

输出格式

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

样例

样例输入
20
样例输出
7
14
17

分析

一个数一个数的排查

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

2、韩信点兵

题目

题目描述

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

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

输入格式

2 1 6

输出格式

41

样例

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

分析

因为人数再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")

3、完全数

题目

题目描述

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

输入格式

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

输出格式

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

样例

样例输入
1 10

样例输出

6
1

分析

这道题要注意一点,因为工程量很大,所以暴力有可能超时,所以要找到完全数末尾为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)

4、鸡兔问题

题目

题目描述

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

输入格式

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

输出格式

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

样例

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值