逐步提升———十个python基础题(11—20,共100道)

题目11.古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

题目12.判断 101-200 之间有多少个素数,并输出所有素数。

题目13.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身.例如: 153 是一个“水仙花数” ,因为 153=1 的三次方+5 的三次方+3的三次方。

题目14.将一个正整数分解质因数。例如:输入90, 打印出 90=2*3*3*5。

题目15.利用条件运算符的嵌套来完成此题:学习成绩 >=90 分的同学用 A表示, 60-89 分之间的用 B表示,60 分以下的用 C表示。

题目16.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

题目17.求 s=a + aa + aaa + aaaa + aa...a 的 值 ,其中a是一个数字。例2+22+222+2222+22222(此时,共有 5 个数相加 ) ,几个数相加由键盘控制。

题目18.一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如 6=1+2+3。编程找出 1000 以内的所有完数。

题目19.一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第 10 次反弹多高?

题目20,猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半, 又多吃了一个。 以后每天早上都吃了前一天剩下的

print("""题目11.古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到
第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?""")
last_one_mouth_old = 0
last_two_mouth_old = 0
last_one_mouth_new = 2
last_two_mouth_new = 2
this_mouth_old = 2
this_mouth_new = 2
nest_one_mouth_old = 2
nest_two_mouth_old = 4
nest_one_mouth_new = 2
nest_two_mouth_new = 4
mouth = (eval(input("请输入月份:")))
if mouth >= 3:
    for i in range(mouth-2):
        last_two_mouth_new = last_one_mouth_old
        last_two_mouth_old = last_one_mouth_old
        last_one_mouth_new = this_mouth_new
        last_one_mouth_old = this_mouth_old
        this_mouth_old = last_two_mouth_new+last_one_mouth_old
        this_mouth_new = last_one_mouth_old
        nest_one_mouth_old = last_one_mouth_new+this_mouth_old
        nest_one_mouth_new = this_mouth_old
        nest_two_mouth_old = this_mouth_new+nest_one_mouth_old
        nest_two_mouth_new = nest_one_mouth_old
else:
    pass
print(this_mouth_new+this_mouth_old)
##############################################################
print("""题目12.判断 101-200 之间有多少个素数,并输出所有素数。 """)
for i in range(101, 201):
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        print(i)
###############################################################
print("""题目13.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立
方和等于该数本身.例如: 153 是一个“水仙花数” ,因为 153=1 的三次方+5 的三次方+3的
三次方。""")
num = 100
while True:
    if num >= 100 and num <= 999:
        a = num//100
        b = num % 100//10
        c = num % 10
        if num == a**3+b**3+c**3:
            print(num)
    num += 1
    if num > 999:
        break
##############################################################
print("""题目14.将一个正整数分解质因数。例如:输入90, 打印出 90=2*3*3*5。""")
num = eval(input("请输入一个正整数:"))
nu=num
n=1
ls=[]
for i in range(2, num+1):
    while num % i == 0:
        num = num // i
        ls.append(str(i))
        n += 1
print("{}=".format(nu)+"*".join(ls))
###############################################################
print("""题目15.利用条件运算符的嵌套来完成此题:学习成绩 >=90 分的同学用 A表示, 60-89 分
之间的用 B表示,60 分以下的用 C表示。""")
score = eval(input("请输入分数:"))
if score >= 90:
    print("A")
elif score >= 60:
    print("B")
else:
    print("C")
##############################################################
print("""题目16.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。""")
s = input("请输入一行字符:")
letters = 0
space = 0
digit = 0
other = 0
for i in s:
    if i.isalpha():
        letters += 1
    elif i.isspace():
        space += 1
    elif i.isdigit():
        digit += 1
    else:
        other += 1
print("letters: {}".format(letters))
print("space: {}".format(space))
print("digit: {}".format(digit))
print("other: {}".format(other))
##############################################################
print("""题目17.求 s=a + aa + aaa + aaaa + aa...a 的 值 ,其中a是一个数字。例如
2+22+222+2222+22222(此时,共有 5 个数相加 ) ,几个数相加有键盘控制""")
a = eval(input("请输入一个数字:"))
num = eval(input("请输入几个数相加:"))
s = 0
all = 0
for i in range(num):
    s += a
    a = a*10
    all += s
print(all)
##############################################################
print("""题目18.一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如 6=1+2+3。编
程找出 1000 以内的所有完数。""")
for i in range(1, 1001):
    sum = 0
    for j in range(1, i):
        if i % j == 0:
            sum += j
    if sum == i:
        print(i)
##############################################################
print("""题目19.一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第 10 次落地时,共经过多少米?第 10 次反弹多高?""")
h = 100
h_all=0
for i in range(10):
    h_all += h
    h = h / 2
    h_all += h
print(h)
print(h_all-h)
##############################################################
print("""题目20,猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃
了一个第二天早上又将剩下的桃子吃掉一半, 又多吃了一个。 以后每天早上都吃了前一天剩下的
一半多一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 """)
n = 1
for i in range(9):
    n = (n + 1)*2
print(n)

一半多一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值