python入门100例(11-20)

"""
【程序11】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
   后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
"""
# 1,1 ,2 ,3 ,5 ,8
f1 = 1
f2 = 1
for i in range(1,5):
    print ('%12d %12d' % (f1,f2))
    # if (i % 2) == 0:
    #     print ('')
    f1 = f1 + f2
    f2 = f1 + f2
# 找素数
"""
【程序12】
题目:判断101-200之间有多少个素数,并输出所有素数。
"""
import math
n = 0
leap = 1
for i in range(101,201):
    for j in range(2,int(math.sqrt(i))):
        if i%j==0:
            leap = 0
            break
    if leap ==1:
        print('%3d'%(i))
        n+=1
    leap = 1
print("toatal number:%d"%(n))
"""
【程序13】
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
   本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
"""
for i in range(100,1000):
    b = i//100
    s = i%100//10
    g = i%10
    if b**3+s**3+g**3==i:
        print(i)
# 分解质因数
"""
【程序14】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
"""
import sys
n = int(input())
a=[]
m=1
for i in range(2,n+1):
    while i!=n:
        if n%i==0:
            n=int(n/i)
            sys.stdout.write("%s"%i)
            sys.stdout.write("*")
        else:
            break
sys.stdout.write("%s"%n)
# b = len(a)
# for j in range(b):
#     m*=a[j]
#     print(a[j])


# 分数确认等级
"""
【程序15】
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
   60分以下的用C表示。
"""
score = int(input('input score:'))
if score >= 90:
    grade = 'A'
elif score >= 60:
    grade = 'B'
else:
    grade = 'C'

print ('%d belongs to %s' % (score,grade))
"""
题目16:输出指定格式的日期。
"""
# 统计字符数字空格个数
"""
17:题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
"""
s = input('input a string:\n')# 输入字符串
letters = 0
space = 0
digit = 0
others = 0
for c in s:
    if c.isalpha():
        letters += 1
    elif c.isspace():
        space += 1
    elif c.isdigit():
        digit += 1
    else:
        others += 1
print ('char = %d,space = %d,digit = %d,others = %d' % (letters,space,digit,others))

 

"""第18题:求s = a+ aa+aaa+aaaa+aa..a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时,共有5个数相加),几个数相加由键盘控制。
"""
def calcS(number,n):
    result = 0
    a =num
    for i in range(1,n+1):
        result += number
        number = number*10+a
    return result
if __name__ =="__main__":
    num = int(input())
    k = int(input())
    sum = calcS(num,k)
    print("%d"%sum)
# n = int(input())
# leap = 1
# # h = 0
# a = [1]
# for j in range(2,n+1):
#     j_copy =j
#     for i in range(2,j+1):
#         while i != j_copy:
#             if j_copy%i == 0:
#                 j_copy = int(j_copy/i)
#                 # leap = 0
#                 a.append(i)
#             else:
#                 # h += 1
#                 # leap = 1
#                 break
#     a.append(j_copy)
#     sum1 = sum([item for item in a ])
#     if j == sum1:
#         print(j)
#     a = [1]
"""
19:题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
   找出1000以内的所有完数。
"""
from sys import stdout
for j in range(2,1001):
    k = []
    n = -1
    s = j
    for i in range(1,j):
            if j % i == 0:
                n += 1
                s -= i
                k.append(i)

    if s == 0:
        print (j)
        for i in range(n):
            stdout.write(str(k[i]))
            stdout.write(' ')
        print (k[n])
"""
20:题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
   第10次落地时,共经过多少米?第10次反弹多高?
"""
sum = 100
h = 50       #第一次到底的总路程和反弹高度
for i in range(2,11):
    sum += 2 * h
    h /= 2
print("sum:%f\n high:%f"%(sum,h))

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值