某农业学校python(三)

1.“快乐数”

【问题描述】

编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直 到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。

【样例输入】

32

【样例输出】

yes

【样例输入】

37

【样例输出】

no

a = input()
for i in range(1,40):
    sum = 0
    for i in a:
        i = int(i)
        sum += i**2
        a = str(sum)

if sum==1:
    print("yes")
else:
    print('no')
2.有效密码

【问题描述】网站要求用户输入用户名和密码进行注册。编写程序以检查用户输入的密码的有效性。以下是检查密码的标准:
1. 至少有1个字母(大小写都至少有一个)
2. 至少有1个数字
3. 至少有1个字符(即非字母和非数字)
4.最短交易密码长度:6
5.交易密码的最大长度:12

编写函数isVaildPassword,函数为一个字符串,表示用户提供的密码,返回为True和False表示密码是否有效.

【样例输入】aBc123@
【样例输出】True

def isVaildPassword(key):
    cout1, cout2, cout3 = 0, 0, 0
    for i in key:
        if i:
            cont1 = cout1+1
        elif i in list2:
            cout2 = cout2+1
        elif i in list3:
            cout3 = cout3+1
    if cout1!=0 and cout2!=0 and cout3!=0 and 6<=len(key)<=12:
        return True
    else:
        return False

a = list(input())
print(isVaildPassword(a))
3.求a + aa + aaa + aaaa

【问题描述】编写一个程序,给定的正整数a的值,计算a + aa + aaa + aaaa的值,

【输入形式】9

【输出形式】11106

a = int(input())
aa = a*10+a
aaa = a*100+aa
aaaa = a*1000+aaa
sum = a+aa+aaa+aaaa
print(sum)
4.判断数中是否存在重复的数字

【问题描述】

输入一个数,判断该数中是否存在重复的数字。如1314,有重复,520,无重复。

【样例输入】

1314
【样例输出】

yes

【样例输入】

520
【样例输出】

no

num1 = input()
num2 = [i for i in num1]
set1 = set(num2)
if len(set1) == len(num2):
    print("no")
else:
    print("yes")
5.删除所有重复的单词

【问题描述】编写一个程序,接受一系列空格分隔的单词作为输入,并在删除所有重复的单词并按字母数字排序后打印这些单词。【输入形式】
【输出形式】
【样例输入】hello world and practice makes perfect and hello world again

【样例输出】again and hello makes perfect practice world

str1 = input().split(' ')
set1 = set(str1)
s = sorted(set1)
for i in s:
    print(i,end=" ")
6.录取研究生

【问题描述】某高校录取研究生的要求是,每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(没有录取“not”、自费“pay”、公费“free”三种情况)。

【输入形式】

输入四门课的成绩,成绩均为0~150之间的整数。输入4门课成绩的时候可以结合eval()和input()函数一次性输入4个值,输入数字时用逗号分隔

【输出形式】

not或者pay或者free

【样例输入】

four scores:55,120,110,120
【样例输出】

not

(x,y,s,q) = eval(input("four scores:"))
sum = x+y+s+q
if x<60 or y<60 or s<60 or q<60 or sum<340:
    print("not")
else:
    if sum>=370:
        print("free")
    else:
        print("pay")
7.用人名查电话

【问题描述】

定义一个电话簿,里头设置以下联系人:

    'mayun':'13309283335',

    'zhaolong':'18989227822',

    'zhangmin':'13382398921',

    'Gorge':'19833824743',

    'Jordan':'18807317878',

    'Curry':'15093488129',

    'Wade':'19282937665'

现在输入人名,查询他的号码。
【输入形式】

人名,是一个字符串。
【输出形式】

电话号码。如果该人不存在,返回"not found"
【样例输入】

mayun
【样例输出】

13309283335

name = input()
dict1 = {
    'mayun': '13309283335',
    'zhaolong':'18989227822',
    'zhangmin':'13382398921',
    'Gorge':'19833824743',
    'Jordan':'18807317878',
    'Curry':'15093488129',
    'Wade':'19282937665'
}
if name in dict1:
    print(dict1[name])
else:
    print("not found")
8.猴子吃桃问题

【问题描述】猴子吃桃问题:
                猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第n天吃以前发现只剩下一个桃子,
            编写程序实现:据输入的天数计算并输出猴子共摘了几个桃子

【输入形式】输入的一行为一个非负整数,表示一共吃的天数。
【输出形式】输出的一行为一个非负整数,表示共摘了几个桃子,若输入的数据不合法(如:负数或小数),则输出"illegal data"。
【样例输入】3
【样例输出】10

【样例输入2】0
【样例输出2】0

a = eval(input())
b = 1
if a!=int(a) or a<0:
    print("illegal data")
elif a==0:
    print("0")
else:
    for i in range(1,a):
        b = b*2 + 2
    print(b)
9.Python 小球反弹

【问题描述】
已知一球从高空落下时,每次落地后反弹至原高度的四分之一再落下。编写一程序,从键盘输入整数n和m,求该球从n米的高空落下后,第m次落地时共经过的路程以及第m次落地后反弹的高度,并输出结果。
【输入形式】
从键盘输入整数n和m。
【输出形式】
输出两行:
第一行输出总路程,保留小数点后两位;
第二行输出第m次落地后反弹的高度,保留小数点后两位。
【输入样例】

10

3

【输出样例】

16.25

0.16

n = int(input())
m = int(input())
sum = n
while m!=1:
    sum += n*0.25*2
    m = m - 1
    n = 0.25*n
print('%.2f'%sum)
print('%.2f'%((n*0.25)+0.0001))
10.韩信点兵

【问题描述】

有一群士兵,人数不超过n。韩信将其按照一行3人排队,余2人;按照一行5人排队,余1人;按照一行7人排队,刚好排成若干行。编写程序 计算士兵的人数。

(提示:可以采用穷举法求解。当人数上限比较大时,会有多种结果,要求全列举出来)


【输入形式】

人数上限 n
【输出形式】

士兵人数
【样例输入】

60
【样例输出】

56

n = eval(input())
i = 1
for i in range(1,n+1):
    if i%3==2 and i%5==1 and i%7==0:
        print(i,end=' ')

  • 9
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值